欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

[vue] 你知道nextTick的原理吗?

发布时间:2023/12/9 68 豆豆
生活随笔 收集整理的这篇文章主要介绍了 [vue] 你知道nextTick的原理吗? 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

[vue] 你知道nextTick的原理吗?

提到DOM的更新是异步执行的,只要数据发生变化,将会开启一个队列,并缓冲在同一事件循环中发生的所有数据变更。如果同一个 watcher 被多次触发,只会被推入到队列中一次。简单来说,就是当数据发生变化时,视图不会立即更新,而是等到同一事件循环中所有数据变化完成之后,再统一更新视图。关于异步的解析,可以查看阮一峰老师的这篇文章,具体来说,异步执行的运行机制如下。(1)所有同步任务都在主线程上执行,形成一个执行栈(execution context stack)。(2)主线程之外,还存在一个"任务队列"(task queue)。只要异步任务有了运行结果,就在"任务队列"之中放置一个事件。(3)一旦"执行栈"中的所有同步任务执行完毕,系统就会读取"任务队列",看看里面有哪些事件。那些对应的异步任务,于是结束等待状态,进入执行栈,开始执行。(4)主线程不断重复上面的第三步。例子://改变数据 vm.message = 'changed'//想要立即使用更新后的DOM。这样不行,因为设置message后DOM还没有更新 console.log(vm.$el.textContent) // 并不会得到'changed'//这样可以,nextTick里面的代码会在DOM更新后执行 Vue.nextTick(function(){console.log(vm.$el.textContent) //可以得到'changed' })

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论

主目录

与歌谣一起通关前端面试题

创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖

总结

以上是生活随笔为你收集整理的[vue] 你知道nextTick的原理吗?的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。