关于vue的nexttick?
发布于 3 年前 作者 1269886839 1855 次浏览 来自 问答

this.a = 1; this.$nexttick(() => { console.log(‘nexttick1’) }) this.b = 2; this.$nexttick(() => { console.log(‘nexttick2’) }); 谁能帮我讲解一下啊。底层原理。

5 回复

@chenkai0520 这个源码 我看了好多遍了。开一个微任务。执行。除非this.a = 1。跟this.b = 2。是同步任务。不然nexttick怎么会在两次dom更新后执行。但是你觉得 dom 更新是同步吗?vue 不是有批处理的啊。

@1269886839 这个建议你看下js的事件循环机制,vue跟这个关系不大

我说一下我的最新理解。看大佬能不能帮忙纠正。 this.$nexttick 的时候其实已经调用 $nexttick 的 getter 已经进入 wathcer 队列。后边的this.a this.b这些都进队列。 所以watcher的微任务要比 $nexttick 函数里边的微任务队列要先。是不是这个意思。

回到顶部