欢迎光临散文网 会员登陆 & 注册

Vue中this.$forceUpdate()与this.$nextTick()

2022-10-28 10:50 作者:对白浅浅  | 我要投稿

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()

}




Vue中this.$forceUpdate()与this.$nextTick()的评论 (共 条)

分享到微博请遵守国家法律