vue为什么采用异步渲染
今天有人问了一个问题:vue为啥子要采用异步渲染?我当时回答得有点含糊。之后整理了一下。
vue是组件级的更新,如果不采用异步更新,那么每次更新数据都会对当前组件进行重新渲染,所以为了性能,vue会在本轮数据更新后,在异步更新视图。这也是nextTick产生的原因。异步渲染的核心思想就是nextTick
作用:
nextTick接收一个回调函数作为参数,并将这个回调函数延迟到DOM更新后才执行,减少操作DOM的次数;
使用场景:想要操作基于最新数据生成的DOM时,就将这个操作放在nextTick的回调中;
实现原理:将传入的回调函数包装成异步任务,异步任务又分为微任务和宏任务(setTimeout、promise、等),定义了一个异步方法,多次调用nextTick会将方法存入队列,通过异步方法清空当前队列。
整个vue是一个大的异步渲染
以上是个人认为较为完整的回答了(●’◡’●)