指令:带有v-前缀的指令,代表vue提供的特殊属性。这些指令会在渲染的DOM上应用特殊的响应式行为。
v-text
预期:string
作用
更新元素的 textContent。如果要更新部分的 textContent ,需要使用 {{ Mustache }} 插值。
示例
<span v-text="msg"></span>
<span>{{msg}}</span>
v-html
预期:string
作用
更新元素的 innerHTML
注意: 内容按普通 HTML 插入 - 不会作为 Vue 模板进行编译
v-html不能用来复合局部模板,因为vue不是基于字符串的模板引擎。另外只对可信内容使用v-html,避免xss攻击带来重大危险。
示例
<div v-html="html"></div>
v-show
预期 any
作用
根据表达式之真假值,切换元素的 display CSS
属性。
当条件变化时该指令触发过渡效果。
说明:v-show会让元素始终渲染并保留在DOM中,因为只是改变css属性display。
v-if
预期:any
作用
根据指令的表达式值的真假渲染元素。
在切换时元素及它的数据绑定 / 组件被销毁并重建。如果元素是 <template>
,将提出它的内容作为条件块。
当条件变化时该指令触发过渡效果。
示例
<h1 v-if="awesome">Vue is awesome!</h1>
v-if和v-show区别
v-show
不管条件是真还是假,第一次渲染的时候都会编译出来,也就是标签都会添加到DOM中,之后切换的时候,通过display:none
;样式来显示隐藏元素。可以说只是改变css的样式,几乎不会影响什么性能。
v-if
在首次渲染的时候,如果条件为假,什么也不操作,页面当作没有这些元素。当条件为真的时候,开始局部编译,动态的向DOM元素里面添加元素。当条件从真变为假的时候,开始局部编译,卸载这些元素,也就是删除。
v-else
不需要表达式
作用
表示v-if
的“else块
”,不需要表达式,但必须紧跟在带 v-if
或者 v-else-if
的元素的后面,否则它将不会被识别。
<div v-if="Math.random() > 0.5">
Now you see me
</div>
<div v-else>
Now you don't
</div>
v-else-else(2.1.0新增)
类型:any
作用
表示 v-if
的 “else if
块”。可以连续使用。必须紧跟在带 v-if
或者 v-else-if
的元素之后。
可以链式调用
<div v-if="type === 'A'">
A
</div>
<div v-else-if="type === 'B'">
B
</div>
<div v-else-if="type === 'C'">
C
</div>
<div v-else>
Not A/B/C
</div>
v-for
预期:Array | Object | number | string | Iterable (2.6 新增)
作用
基于源数据(该数据类型可以是Array | Object | number | string | Iterable)
,进行多次渲染元素或模板块。该指令的值必须使用特定的语法alias in expression
,为当前遍历的元素提供别名。
<div v-for="item in items">
{{ item.text }}
</div>
另外也可以为数组索引指定别名 (或者用于对象的键):
<div v-for="(item, index) in items"></div>
<div v-for="(val, key) in object"></div>
v-for 默认行为试着不改变整体,而是替换元素。如果需要重新对元素进行排序,则需要使用 key 属性:
<div v-for="item in items" :key="item.id">
{{ item.id }}
</div>
v-on
缩写:@
预期:Function | Inline Statement | Object
参数:event
修饰符:

作用
绑定事件监听器。事件类型由参数指定。 用在普通元素上时,只能监听原生 DOM 事件。用在自定义元素组件上时,也可以监听子组件触发的自定义事件。
在监听原生 DOM 事件时,方法以事件为唯一的参数。如果使用内联语句,语句可以访问一个 $event
属性:v-on:click="handle('ok', $event)"。
v-bind
缩写::
预期:any (with argument) | Object (without argument)
参数:attrOrProp (optional)
修饰符:

作用:
动态地绑定一个或多个特性,或一个组件prop到表达式。
v-model
预期:随表单控件类型不同而不同。
限制:
<input>
<select>
<textarea>
components
修饰符

作用
在表单控件或组件上创建双向绑定。
v-slot
缩写:#
预期
可放置在函数参数位置的 JavaScript 表达式 (在支持的环境下可使用解构)。可选,即只需要在为插槽传入 prop 的时候使用。
参数
插槽名 (可选,默认值是 default)
作用
提供具名插槽或需要接收prop的插槽。