面试题讲解(十三)--vue【nextTick】

vue的nextTick函数,当我们触发事件更新dom后,但是没法在vue中立即获取到dom的最新值,这时候就要用到nextTick函数,他可以帮助我们在下一次Dom更新后执行他的回调函数

浏览器事件循环机制

浏览器对于事件的处理是有自己的一套机制,同步代码进入执行栈,异步代码进入异步队列,异步任务分为宏任务和微任务
宏任务与微任务

宏任务是浏览器带来的函数,列如setTimeout、setInterval,这些任务都是宏任务
微任务是语言带来的函数,比如promise的then函数

执行机制

当浏览器执行时,会先执行同步任务,然后执行异步任务,执行异步任务时,会先执行微任务,把微任务队列清空后,再去执行一个宏任务,然后在看此时的微任务队列,如此循环,知道宏任务微任务清空

nextTick执行机制

在vue中更新dom是异步的,当同步任务完成后才会去更新dom,nextTick会把此时的回调添加到异步任务队列中,当dom更新的任务完成后才会去执行nextTick函数

vue的异步更新机制

vue实现响应式并不是说数据一改变,DOM就立即变化。Vue在修改数据后,视图并不是立即更新,而是等同一事件循环中的所有数据变化完成后,再统一进行视图的更新。也就是说vue是异步渲染的

this.msg = ‘1234’。因为在初始化的时候已经做了数据劫持,当对数据进行更新操作时,就会触发 setter 的拦截

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

outside-R

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值