24、为何vue采用异步渲染?
1、vue采用异步队列渲染是为了提高性能,在异步队里会去掉重复的无效的渲染。
当vue中的数据发生改变后,vue框架会把该数据引起的dom更新放入异步队列( 缓冲在同一事件循环中发生的所有数据变更 ),进行排队。 如果同一个 watcher 被多次触发,只会被推入到队列中一次 。 这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作是非常重要的 。
2、如果不采用 异步渲染,而是在数据发生改变后,立即更新dom,如果有重复无效的渲染,那么,就会造成性能的浪费。
25、nextTick实现原理?
1)、为什么用Vue.nextTick()
首先,JS是单线程的,那么,它如何处理异步操作。
-
所有同步任务都在主线程上执行,形成一个执行栈。
-
主线程之外,会存在一个任务队列,只要异步任务有了结果,就在任务队列中放置一个事件(所以,也叫事件队列),进行排队(处于等待状态)。
-
当执行栈中的所有同步任务执行完后,就会读取任务队列(事件队列)中的任务(事件)。即:任务队列中的任务就结束了等待状态,进入执行栈。
-
主线程不断重复第三步。直到任务队列和执行栈里的代码执行完毕。
了解一个事件循环: javascript的事件循环(event loop)_jiang7701037的博客-CSDN博客
其次,vue更新DOM的思路。使用的就是

2万+

被折叠的 条评论
为什么被折叠?



