开发过程中我们发现,向数组中添加了元素,但视图并没有刷新,可打印数组过程却中发现原数组已经改变了,这是Vue的一个机制。通过深拷贝实现,数组更新检测。在这儿提供几种方法。
以下这几种方法可以解决数组数据改变而视图未改变
push()
this.arr.push(val) //向数组中yua添加元素(尾)
pop()
this.arr.pop() //删除数组最后一项(从后到前)
shift()
this.arr.shift() // 删除第一项(从前到后)
unshift()
this.arr.unshift(val) //向数组中添加元素(首)
splice()
this.arr.splice(startIndex,nums,val) //向数组中添加元素,也可以用作删除、替换(高频率)
sort()
this.arr.sort() //对数组排序数字(从小到大)
reverse()
this.arr.reverse() //数组反转顺序(a-b)翻转后(b-a)并不会对数组进行大到小之类的排序
Vue 官方给我们提供的两种方法
Vue.set(this.arr, index,val)
Vm.$set(this.arr,index,val)
注:Vm是Vue的实例化对象
对象更新检测
Vue.set(this.obj, name,nameVal)
Vm.$set(this.obj,name,nameVal)
以下修改原有属性可以引起视图更新,添加的属性并不会引起视图更新
this.list.name = nameVal
最后 vue初始渲染会产生空白间隙
[v-clock]{
display:none;
}
首次页面加载中没有vue语法糖,所以会有个空白间隙,加载vue
个人理解,若有高明看法请指出