当前位置:
首页 >
[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的原理吗?的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: iOS硬解码H264视频流
- 下一篇: [vue] 你有使用做过vue与原生ap