v-cloak:使用 v-cloak 能够解决 插值表达式闪烁的问题(网速很慢的时候会先显示插值{{msg}},加载完成后才会显示数据内容)
v-text:v-text会覆盖元素中原本的内容,但是 插值表达式 只会替换自己的这个占位符,不会把 整个元素的内容清空(默认 v-text 是没有闪烁问题的)
v-bind: 是 Vue中,提供的用于绑定属性的指令,v-bind: 指令可以被简写为 :要绑定的属性 (v-bind 只能实现数据的单向绑定,从 M 自动绑定到 V, 无法实现数据的双向绑定)
v-on: 事件绑定机制 缩写是 @
(事件修饰符:
)
.stop 阻止冒泡 例:@click.stop="btnHandler"
.prevent 阻止默认行为
.capture 实现捕获触发事件的机制
.self 实现只有点击当前元素时候,才会触发事件处理函数(.self 只会阻止自己身上冒泡行为的触发,并不会真正阻止 冒泡的行为)
.once 只触发一次事件处理函数
v-model: 可以实现 表单元素和 Model 中数据的双向数据绑定 (v-model 只能运用在 表单元素中)
v-once: v-once这个指令不需要任何表达式,它的作用就是定义它的元素或组件只会渲染一次,包括元素或者组件的所有子节点。首次渲染后,不再随着数据的改变而重新渲染。也就是说使用v-once,那么该块都将被视为静态内容。v-once可以提高静态内容的展示效率,
如果没有写v-once,那么在切换显示child1和child2组件时,会不停的删除创建这两个组件中的元素
v-for:根据一组数组的选项列表进行渲染 例:<p v-for="(item, i) in list">索引值:{{i}} --- 每一项:{{item}}</p>
( 注意1:在遍历对象身上的键值对的时候, 除了 有 val key ,在第三个位置还有 一个 索引
)
<p v-for="(val, key, i) in user">值是: {{ val }} --- 键是: {{key}} -- 索引: {{i}}</p>
注意2:in 后面可以放 普通数组,对象数组,对象, 还可以放数字
<p v-for="count in 10">这是第 {{ count }} 次循环</p>
(使用 v-for 迭代数字的话, count 值从 1 开始)
( v-for中key属性的使用
<p v-for="item in list" :key="item.id">
<input type="checkbox">{{item.id}} --- {{item.name}}
</p>
注意:v-for key属性的类型只能为 string或者number类型,key 在使用的时候,必须使用 v-bind 属性绑定的形式,指定 key 的值,
在组件中,使用v-for循环的时候,或者在一些特殊情况中,如果 v-for 有问题,则必须 在使用 v-for 的同时,指定 唯一的 字符串/数字 类型 :key 值
为什么要加key属性:https://www.jianshu.com/p/4bd5e745ce95
)
v-if: 通过条件判断展示或者隐藏某个元素。或者多个元素
(每次都会重新删除或创建元素,有较高的切换性能消耗,v-if是惰性的,如果初始条件为假,则什么也不做)
<h3 v-if="flag">这是用v-if控制的元素</h3> //如果flag为true则该元素会显示在页面中,如果flag为flase则隐藏
v-show:和v-if一样,也是通过条件判断展示或者隐藏某个元素。
(每次不会重新进行DOM的删除和创建操作,只是切换了元素的 display:none 样式,有较高的初始渲染消耗,v-show是在任何条件下(首次条件是否为真)都被编译)
如果元素涉及到频繁的切换,最好不要使用 v-if, 而是推荐使用 v-show
如果元素可能永远也不会被显示出来被用户看到,则推荐使用 v-if
v-else:为v-if或v-show添加一个“else块”。注意:v-else前一兄弟元素必须有 v-if 或 v-else-if。
(
<div v-if="10 > 20">
这个能输出就见鬼了
</div>
<div v-else>
你想啥呢,10当然是小于20了 肯定执行我v-else呀!!!
</div>
)