Vue.js 指令详解:v-bind, v-html, v-once, v-on, v-if, v-else-if, v-else 和 v-model

devtools/2024/11/30 13:09:39/

Vue.js 是一个用于构建用户界面的渐进式框架,它通过一系列的指令来实现数据与 DOM 的绑定。在本篇博客中,我们将通过一个示例来介绍 Vue 3 中的一些常用指令:v-bind, v-html, v-once, v-on, v-if, v-else-if, v-elsev-model

1. v-bind:动态地绑定一个或多个属性

v-bind 指令用于动态地绑定一个组件 prop 或一个组件 attribute 到表达式。它的简写是 :

html"><h1 :id="id1">这里是模板的内容:<span v-html="cunntHTML"></span>次单击</h1>

在这个例子中,id1 的值将被绑定到 h1 标签的 id 属性上。

html_HTML__HTML__12">2. v-html:将 HTML 字符串渲染为真实的 HTML 内容

v-html 指令用于将绑定值作为 HTML 内容渲染。

html"><span v-html="cunntHTML"></span>

这里,cunntHTML 中的 HTML 标签将被解析并显示为红色文本。

3. v-once:只绑定一次数据

v-once 指令用于进行一次性地插值。当数据变化时,插值处的内容不会更新。

html"><h1 :id="id1" v-once>Hello, World</h1>

4. v-on:监听 DOM 事件

v-on 指令用于在元素上监听 DOM 事件。它的简写是 @

html"><button @click="clickButton">按钮</button>

这里,当按钮被点击时,clickButton 方法将被调用。

5. v-if:条件性地渲染一块内容

v-if 指令用于根据表达式的真假条件渲染一块内容。

html"><div v-if="show"><hi>show</hi></div>

如果 show 的值为 true,则显示 div 内的内容。

6. v-else-if 和 v-else:v-if 的“else if”和“else”块

html"><h1 v-if="mark==100">满分</h1>
<h1 v-else-if="mark>=60">及格</h1>
<h1 v-else>不及格</h1>

这里,根据 mark 的值,将显示不同的 h1 标签内容。

7. v-model:在表单控件元素上创建双向数据绑定

v-model 指令在表单控件元素上创建双向数据绑定。

html"><div><input v-model.trim="content"></div>

这里,content 的值将与输入框的值同步,并且 trim 修饰符会移除输入的首尾空格。

完整示例

html"><!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue.js 指令示例</title><script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
</head>
<body>
<div id="Application" style="text-align: center;"><h1 :id="id1">这里是模板的内容:<span v-html="cunntHTML"></span>次单击</h1><h1 :id="id1">这里是模板的内容:{{ count + 10 }}次单击</h1><h1 :id="id1" v-once>Hello, World</h1><button @click="clickButton">按钮</button><div v-if="show"><hi>show</hi></div><div><input v-model.trim="content"></div><div><h1 v-if="mark==100">满分</h1><h1 v-else-if="mark>=60">及格</h1><h1 v-else>不及格</h1></div>
</div>
<script>javascript">const App = {data() {return {count: 0,cunntHTML: '<span style="color: red;">0</span>',id1: "h1",show: true,mark: 30,content: ''}},methods: {clickButton() {this.count++;}}};Vue.createApp(App).mount("#Application");
</script>
</body>
</html>

结论

Vue.js 的指令为开发者提供了一种声明式的方法来处理数据和 DOM 的交互。通过本篇博客的示例,我们了解了如何使用 v-bind, v-html, v-once, v-on, v-if, v-else-if, v-elsev-model 这些指令来构建动态和交互式的用户界面。Vue 的这些指令不仅使得代码更加简洁,而且提高了开发效率。


http://www.ppmy.cn/devtools/138203.html

相关文章

【机器学习】机器学习的基本分类-监督学习-逻辑回归(Logistic Regression)

逻辑回归是一种分类算法&#xff0c;尽管名字中包含“回归”&#xff0c;但其主要用于解决二分类和多分类问题。它通过学习一个逻辑函数&#xff0c;预测输入属于某个类别的概率。 1. 逻辑回归的基本概念 目标 逻辑回归的目标是找到一个函数 h(x)&#xff0c;输出一个概率值 …

微信小程序Webview与H5通信

背景 近期有个微信小程序需要用到web-view嵌套H5的场景&#xff0c;该应用场景需要小程序中频繁传递数据到H5进行渲染&#xff0c;且需要保证页面不刷新。 由于微信小程序与H5之间的通信限制比较大&#xff0c;显然无法满足于我的业务场景 探索 由于微信小程序与webview的环境是…

田忌赛马五局三胜问题matlab代码

问题描述&#xff1a;在可以随机选择出场顺序的情况下&#xff0c;如果把比赛规则从三局两胜制改为五局三胜制&#xff0c;齐王胜出的概率是上升了还是下降了&#xff1f;五局三胜的赛制下&#xff0c;大家的马重新分为5个等级。前提条件仍然是齐王每种等级的马都优于田忌同等级…

docker入门学习笔记

docker的定义 docker是一个用于构建、运行、传送 应用程序的平台。 为什么要使用docker &#xff1f; 在开发测试库环境中测试成功后&#xff0c;打包成集装箱&#xff0c;到生产环境也是能够成功的。而传统的安装方式不仅繁琐&#xff0c;并且在测试环境安装后&#xff0c;到…

添加事务,封装响应数据

&#xff08;4&#xff09;在业务中添加事务管理 创建平台事务管理器》实际是jdbc的事务 public class JdbcConfig {Beanpublic PlatformTransactionManager transactionManager(DataSource ds){DataSourceTransactionManager transactionManager new DataSourceTransacti…

Elasticsearch 分片分配策略讲解与实战

ES 分片分配策略讲解与实战 Elasticsearch分片分配策略讲解与实战:深入探索与实践指南1. 引言1.1 博客目的与读者定位1.2 Elasticsearch分片分配的重要性2. Elasticsearch分片分配基础2.1 分片与副本的概念2.2 分片分配的目标3. 分片分配策略详解3.1 分片分配的基本原则3.2 影…

课程学习 (Curriculum Learning) 介绍及其在 DeepSpeed 框架中的应用:中英双语

中文版 课程学习 (Curriculum Learning) 介绍及其在 DeepSpeed 框架中的应用 1. 课程学习的概念 课程学习&#xff08;Curriculum Learning&#xff09;是机器学习中的一种训练策略&#xff0c;灵感来源于人类学习的过程——从简单到复杂逐步掌握知识。具体来说&#xff0c;…

大厂也在用的分布式链路追踪:TraceIdFilter + MDC + Skywalking

痛点 查线上日志时&#xff0c;同一个 Pod 内多线程日志交错&#xff0c;很难追踪每个请求对应的日志信息。 日志收集工具将多个 Pod 的日志收集到同一个数据库中后&#xff0c;情况就更加混乱不堪了。 解决 TraceId MDC 前端每次请求时&#xff0c;添加 X-App-Trace-Id 请…