简单说下VUE 中 $nextTick 的作用

       解释nextTick的作用首先得了解js 的时间执行机制,js 事件执行分为 同步和异步,执行的任务又分为宏任务和微任务,js 代码从上到下依次执行,先同后异,先宏后微。

        解析:js 代码和计时器等都属于宏任务,像promise .then() 和 process 都属于微任务,每一个宏任务都会产生很多异步和微任务,这些代码都会同步执行完成之后去执行。微任务还在异步任务之后。

        而$nextTick 原理其实是采用的process 对象的nextTick 方法,就是执行栈中的微任务,在执行$nextTick 中代码时,基本代码都已经执行完成,使用$nextTick  其实也就是防止在执行某段代码的时候,所需要的参数或者dom 没执行到或者没渲染完成,比如说在初始化echars 图标的时候,承载图表绘制的dom 还没有渲染完成,获取不到。其实就是把$naextTick 里面的代码放在下个队列里面去执行。

    关于先宏后异:js 先执行一个宏任务,然后再清空这次宏任务执行过程中产生的微任务队列,然后再执行宏任务,解释关于:setTimeout 在promise 后执行的问题,是因为在执行setTimeout 的时候,本身就是一个宏任务在执行,所以不要尝试在一个为人里面产生递归新任务,要不然就会出现阻塞线程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值