Vue中this.$forceUpdate()与this.$nextTick()
this.$nextTick 将回调延迟到下次DOM更新循环之后执行。在修改数据之后立即使用它,然后等待DOM更新。
在Vue生命周期的created()钩子函数进行的DOM操作一定要放在Vue.nextTick()的回调函数中。
原因是在created()钩子函数执行的时候DOM 其实并未进行任何渲染,此时进行DOM操作无异于徒劳,而与之对应的就是mounted钩子函数,因为该钩子函数执行时所有的DOM挂载已完成。
this.$nextTick(function(){
console.log("回调函数")
})
如果对于一个复杂的对象,例如一个对象数组,你直接去给数组上某一个元素增加属性,或者直接把数组的length变成0,vue就无法知道发生了改变。this.$forceUpdate()与this.$set()可以解决
change:function(index){
this.$set(this.list[index],"sex","男")
}
clear:function(){
this.list[]
}
change:function(index){
this.list[index].sex="男";
this.$forceUpdate();
}
clear:function(){
this.list.length=0;
this.$forceUpdate()
}