vue是异步渲染的原因有哪些

发布时间:2022-12-27 10:12:51 作者:iii
来源:亿速云 阅读:177

这篇文章主要介绍了vue是异步渲染的原因有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue是异步渲染的原因有哪些文章都会有所收获,下面我们一起来看看吧。

原因:可以提升性能。如果不采用异步更新,那么每次更新数据都会对当前组件进行重新渲染;所以为了性能考虑,Vue会在本轮数据更新后,再去异步更新视图,而不是每当有数据更新,就立即更新视图。

1、nextTick()的原理及作用

nextTick确保我们所操作的DOM是更新之后的。

(1)应用场景在视图更新之后,基于新的视图进行操作。

(2)原理:

nextTick 是典型的将底层JS执行原理应用到具体案例中的示例,引入异步更新队列机制的原因∶

如果不采用异步更新,那么每次更新数据都会对当前组件进行重新渲染。所以为了性能考虑,Vue 会在本轮数据更新后,再去异步更新视图。而不是每当有数据更新,就立即更新视图。

当你设置 vm.someData = 'new value',DOM 并不会马上更新,而是在异步队列被清除,也就是下一个事件循环开始时执行更新才会进行必要的DOM更新。

(3) vue的降级策略

Vue 在内部对异步队列尝试使用原生的 Promise.then、MutationObserver setImmediate,如果执行环境不支持,则会采用 setTimeout(fn, 0) 代替,进行降级处理。降级处理的目的都是将flushCallbacks函数放入微任务或者宏任务队列,等待下一次事件循环时来执行

实际刷新队列是有可能在本次事件循环的微任务中刷新的,也可能是在下一个事件循环中刷新的。这取决于代码当前执行的环境,如若当前执行环境支持promise,那么nextTick内部实际会用Promise去执行,那么队列刷新就会在本次事件循环的微任务中去执行。

优先选择微任务的原因:微任务中更新队列是会比在宏任务中更新少一次UI渲染的

2、为何Vue采用异步渲染

vue是组件级更新组件内有数据变化时,该组件就会更新。例:this.a = 1、this.b=2(同一个watcher)

(1)原因:如果不采用异步更新,那么每次更新数据都会对当前组件进行重新渲染。所以为了性能考虑,Vue 会在本轮数据更新后,再去异步更新视图。而不是每当有数据更新,就立即更新视图。

(2)过程:

3)源码解析:

vue是异步渲染的原因有哪些

关于“vue是异步渲染的原因有哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“vue是异步渲染的原因有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. vue+element-ui前端怎么使用print-js实现打印功能
  2. Vue3.2中如何使用语法糖

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

vue

上一篇:vue全局组件和局部组件的区别有哪些

下一篇:react如何删除dom元素

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》