获得徽章 0
前端开发
前端开发
前端开发
赞了这篇沸点
使用 State Hook - React 中文文档
1
前端开发
赞了这篇沸点
今天看了一篇 Vue.js 3.0 新特性的译文,文中提到 “在当前的 Vue 版本中,当父组件重新渲染时,其子组件也必须重新渲染。 使用 Vue 3 ,可以单独重新渲染父组件和子组件”。
这句话是不严谨的,非常容易产生误导,我觉得有必要说明一下: 2.0 组件的重新渲染就是组件粒度的,除非修改的数据是子组件的 props,才会触发子组件的重新渲染。
那么尤大的 PPT 中提到的场景是 Optimized Slots Generation。在 Vue.js 2.0 中,当父组件数据更新的时候执行会触发重新渲染,最终执行父组件的 patch,在 patch 过程中,遇到组件 vnode,会执行新旧 vnode 的 prepatch,这个过程又会执行 updateChildComponent, 这个时候如果这个子组件 vnode 如果有孩子(插槽内容)的时候,会重新 resolve slot 并执行一次子组件的 forceUpdate(),这种情况下才会触发子组件的重新渲染。而尤大所说的优化应该就是特指插槽的场景。
如果说任何场景下父组件的重新渲染就会触发子组件的数据渲染,那 Vue 的性能得有多差,记住 Vue 2.0 的重新渲染就是组件粒度的。
另外关于插槽的源码实现我的《Vue.js 技术揭秘》电子书有分析,关于插槽数据的更新实现我的源码课程视频里也有提到。所以你对源码感兴趣,可以戳下方电子书链接,电子书是开源免费的。视频课程是收费的,你可以按需购买学习,但请务必去官方购买正版喔~
展开
7
前端开发
[广告] 手写前端性能和错误监控工具,快速解决页面卡顿,及时发现页面异常。 地址 ke.qq.com 时间 本周五(11月9日)晚8:30-10:00
愚人码头于2018-11-08 13:00发布的图片
评论
前端开发
前端开发
前端开发
前端开发
前端开发
前端开发
下一页
个人成就
文章被点赞 103
文章被阅读 2,412
掘力值 199
收藏集
17
关注标签
49
加入于