nextTick 就是设置一个回调,用于异步执行。
就是把你设置的回调放在 setTimeout 中执行,这样就算异步了,等待当时同步代码执行完毕再执行。
this.$nextTick(()=> {
//执行的代码
});
有时候,我们可能你要获取图片的高度,但是你获取不到,在created里面,我们就可以用这个代码进行获取,等等
原理其实也是比较简单的
$nextTick:根据官方文档的解释,它可以在 DOM 更新完毕之后执行一个回调函数,并返回一个 Promise(如果支持的话)
代码如下
这是异步程序
下面
class Vue{
constructor(options){
this.$el=document.querySelectorAll(options.el)
},
$nextTick(callback){
return Promise.resove().then(()=>{
callback()
})
}
}
new Vue({
el:"app",
created(){
console.log(this.$el,this.$data)
this.$nextTick(()=>{
console.log(this.$el)
//完事
})
}
})