Vue.js 中的指令是 Vue 的核心特性之一,它们以 v-
为前缀,用于扩展 HTML 元素的行为。通过指令,开发者可以直接在模板中声明式地操作 DOM 元素,从而实现数据绑定、条件渲染、循环渲染、事件绑定等功能。以下是关于 Vue.js 指令的详细介绍:
1. Vue.js 指令的基本概念
- 指令的作用:指令是 Vue 提供的一种特殊属性,用于在模板中动态地操作 DOM 元素。
- 指令的语法:指令以
v-
开头,例如v-if
、v-for
、v-bind
等。 - 指令的值:指令的值可以是 JavaScript 表达式,例如
v-if="isVisible"
。
2. 常用的 Vue.js 指令
2.1 数据绑定
-
v-bind
:动态绑定 HTML 属性到 Vue 实例的数据。<img v-bind:src="imageUrl" alt="Image">
简写形式:
<img :src="imageUrl" alt="Image">
-
v-model
:实现表单输入元素与 Vue 实例数据的双向绑定。<input v-model="message" placeholder="Enter a message">
2.2 条件渲染
-
v-if
:根据表达式的值决定是否渲染元素。<p v-if="isVisible">This is visible</p>
-
v-else
:与v-if
配合使用,表示v-if
条件不成立时的渲染内容。<p v-if="isVisible">This is visible</p> <p v-else>This is hidden</p>
-
v-else-if
:用于多条件判断。<p v-if="type === 'A'">Type A</p> <p v-else-if="type === 'B'">Type B</p> <p v-else>Type C</p>
-
v-show
:根据表达式的值切换元素的显示/隐藏(通过 CSS 的display
属性)。<p v-show="isVisible">This is visible</p>
2.3 循环渲染
v-for
:基于数组或对象渲染列表。<ul> <li v-for="item in items" :key="item.id">{ { item.name }}</li> </ul>
2.4 事件绑定
v-on
:监听 DOM 事件并执行 Vue 实例中的方法。
简写形式:<button v-on:click="handleClick">Click me</button>
<button @click="handleClick">Click me</button>
2.5 其他指令
-
v-text
:更新元素的textContent
。<p v-text="message"></p>
-
v-html
:更新元素的innerHTML
(注意防范 XSS 攻击)。<div v-html="htmlContent"></div>
-
v-once
:只渲染元素一次,后续数据变化不会更新该元素。