关于vue3源码的diff算法的信息

hacker|
108

文章目录:

vue需要使用key来给每个节点做一个唯一标识,Diff算法就可以正确的识别此节点,更高效的更新虚拟DOM吗?

是的。页面的数据变化时,Diff算法会比较同层级节点。当有唯一标识的时候,虚拟DOM可以识别位置,更新相应节点;无唯一标识的时候,会更新同层级节点。数据量大的时候明显更快。

慕课网上没搜到vue源码,有没有课程透彻分析Vue 源码的?

有,你在实战里找是huangyi讲的,印象中是从 Vue 的跨平台编译入手,从 Vue 的几个核心能力开始分析Vue 源码。 Vue 的静态全局 API 与属性, Vue 的响应式原理,异步组件、组件化、diff 算法等等方面,都是进行了详细的分析,最后还附带了vuex和vuerouter。

diff算法是什么?

diff算法是虚拟DOM中采用的算法。

把树形结构按照层级分解,只比较同级元素。不同层级的节点只有创建和删除操作。给列表结构的每个单元添加唯一的key属性,方便比较。

相关信息:

React只会匹配相同class的component。合并操作,调用component 的 setState 方法的时候,React将其标记为dirty。

到每一个事件循环结束,React 检查所有标记 dirty 的 component 重新绘制。选择性子树渲染。开发人员可以重写 shouldComponentUpdate 提高 diff 的性能。

1条大神的评论

  • avatar
    访客 2022-07-17 上午 08:21:40

    文章目录:1、vue需要使用key来给每个节点做一个唯一标识,Diff算法就可以正确的识别此节点,更高效的更新虚拟DOM吗?2、慕课网上没搜到vue源码,有没有课程透彻分析Vue 源码的?3、diff算法是什么?vue需要使用k

发表评论