this.$nextTick与setTimeout

Vue中封装了方法$nextTick

表示该方法里面的函数将在下一次DOM更新后才执行

this.$nextTick(()=> {  
 
})

平时如果我们将想要执行的方法放在其他代码后面执行 也可以使用setTimeout 

setTimeout(()=> {
},
0)

有些时候这两个方法都能完成我们想要的功能 

$nextTick是Vue封装的方法 源码实际上优先用的Promise 然后setInterval 两者都不支持的情况下使用setTimeout

所以本质上是有着宏任务与微任务之间的区别

$nextTick是在DOM更新后更新

setTimeout只是执行延迟 与DOM操作无关 DOM此时有可能更新也有可能不更新

所以如果你的需求需要依赖DOM更新 肯定是使用$nextTick更好

 

posted @ 2021-12-14 11:26  名字不得为空  阅读(737)  评论(0编辑  收藏  举报