继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Vue常用的内置指令

慕虎7371278
关注TA
已关注
手记 1267
粉丝 203
获赞 873

1,v-cloak
<div id = 'app' v-cloak> {{ message }} </div>
虽然已经加上了 v-cloak 但是当网速过慢时,还会显示message的字样,直到Vue创建实例、编译模板时,DOM才会被替代,过程回出现闪动,只要加上一句css就可以解决
[v-cloak] {
display: none
}
2, v-once
作用,定义它的元素只被渲染一次,不再随数据的变化重新渲染,将被视为静态内容
3,v-if, v-else-if, v-else
举个栗子:
<div>
<p v-if = "status === 1">当status = 1 时显示该行</p>
<p v-else-if = ""status === 2"> 当status = 2 时显示该行</p>
<p v-else> 否则都不显示</p>
</div>
4,v-show
v-show 与 display: none/block 时一样的作用,隐藏元素,而不时消除元素
注意: v-show不可以在 <template>上使用
5,v-for
举个栗子:
data:{
books: [
{
name: ' **** ',
author: 'HL'
},
{
name: ' **** ',
author: 'HL'
},
{
name: ' **** ',
author: 'HL'
}
]
}
<template v-for = 'book in books'>
<li>{{ book.name }}</li>
<li>{{ book.author }}</li>
</template>

同时,v-for 还有 value,key,index 的属性,在编程时可以灵活应用

注意: vue不能检测到也不会触发视图更新:
1,通过索引直接设置选项
2,修改数组的长度

第一个问题的解决方案:
Vue.set(app.books, 3,{
name: '$$$$',
author: 'HF'
})
另一种方法 使用代替的方法
app.books.splice(3, 1, {
name: '$$$$',
author: 'YX'
})
第二个问题的解决方案:
app.books.splice( 1 )

// 补充 :
(1)    splice(x, y, z)
x: 替换目标的位置
y: 替换目标的个数
z: 将要替换的内容

(2)   Vue.set( target, key, value )
target:要更改的数据源(可以是对象或者数组)
key:要更改的具体数据
value :重新赋的值
(3)  一个简洁的小技巧:
<button  :disabled = "item.count === 1">  </button>
当disabled满足条件时,button就会立即失效。
如果button 换成了 div ,
disabled就不会起作用了。



作者:是归人不是过客
链接:https://www.jianshu.com/p/50edf3c1062e


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP