-
列表渲染
- 数组:(item,index) of arr
- 对象:(val,key,index) of object
- 实际使用时常用[{},{}] (数组嵌套对象)
-
key的管理:(vue v-for 下key值的作用)
-
在v-for使用v-bind:key绑定key,会使虚拟DOM记录节点的身份,在操作数组等元素进行变动时,DOM也会进行变动,在使用key值的情况下,不会让DOM元素排序产生混乱
如果只是进行固定的列表渲染,可以不适用key获得vue本身的性能提升,
如果要进行数组的呢过数据的变化来改变DOM元素时,建议加上唯一的key值
-
在vue实例化对象外去操作data的数组或对象:能够在vue实例化对象内修改数据的情况下,不要在外部修改
-
如果在vue实例化外部操作vue中的数据,视图没发生更新,可以使用什么方法去解决?
-
当在实例化外插入vue实例化中的数据时,不能直接加入,可以使用数组变异方法并处罚视图的更新
下为数组变异方法
-
push()
//在尾部插入
-
-
pop()
//在尾部删除 -
shift()
//在头部删除 -
unshift()
//在头部插入 -
splice()
//增删改 -
sort()
//排序 -
reverse()
//反转数组 -
使用Vue.set(数组,下标,追加的内容)
使用vm.$.set(数组,下标,追加的内容)对象: Vue.set(对象,key,val) vm.$set (对象,key,val)
合并对象的方法,可以同时添加多个属性
-
v-for和v-if<mark>在同一DOM节点去使用时</mark>,v-for优先级始终大于if,不论条件是否满足,都会将数据进行遍历,然后再进行v-if条件的判断,所以如果有v-if条件的隐藏,会消耗性能,不推荐在同一DOM节点上使用v-if和v-for
要使用其他方法去代替,可以使用filter先过滤后再去遍历
如果v-if的DOM节点包含v-for的DOM节点时,,v-if的优先级大于v-for
-
v-for可以嵌套使用
-
在组件调用处使用v-for:遍历多次组件上,必须加key值
<Mycomponent v-for="item of arr" :key="item"></Mycomponent>
<mark>当在组件上使用 v-for 时,key 现在是必须的</mark>
-
事件修饰符
-
stop阻止冒泡
-
prevent阻止默认行为
-
once只让事件执行一次
-
self事件只作用在元素本身触发,不作用在子元素上触发
-
passive:许多浏览器在执行事件时,都会去默认的询问是否有阻止事件,默认行为
的方法,加上passive修饰符后,告诉浏览器,不用去询问是否有阻止事件默认行为
(preventDefault)这个事件中没有,事件修饰符可进行链式操作,passive和prevent不能合并
使用,浏览器会抛出警告
-
capture把冒泡事件改为捕获事件
<mark>事件修饰符可以进行链式操作:@click.prevent.once</mark>