vue指令

142 阅读1分钟

内置指令

v-for 数据循环,操作dom元素

> 普通数组
> 对象数组
> 对象
> 数字(迭代数字要注意:从1开始)
> 字符串

语法:of 也可以,但是最好用 in

v-for ( (item,index) in data )

vue 2.5+版本要求循环的时候 必须增加key属性

为了做domdiff,但是最好不要用索引index设key,因为只要一个元素发生变化,那么左右元素的索引都会发生变化,diff算法是比较同级之间的不同,以key来进行关联,假如删除一条数据,后面所有的key都会改变,就会重新渲染,导致性能浪费。
<!-- vue-bind 是动态绑定属性 -->
    <!-- template vue自带的标签 无意义的标签 template上不能增加key属性 需要给真实的元素加 -->
    <div id = "app">
        <!-- 这样会循环出多个div -->
        <div v-for= "(item,index)  of arr" :key='index'> 
            <li >{{item.label}}</li>
        </div>
        <!-- 这样只渲染li -->
        <template v-for="(item,index) of arr">
            <li  :key=`${index}_1`>{{item.label}}</li>
        </template> 

v-if 和 v-show 的区别

1) v-if 是处理dom是否添加到页面上,v-show 是增加到页面上,显示和隐藏的操作,相当于style的操作。

2)v-if可以使用template,v-show不可以

自定义指令