vue3 diff源码梳理学习笔记

1、只比较同层

2、双端比较

3、判断流程

1、先判断是否是首次渲染;

2、vnode oldvnode 指向同一个对象?

3、oldvnode dom 关联到真实的元素上,依次更新dom上的属性,class style props events;

4、针对简单的文本节点 只需要更新文本内容

5、oldVnode 有子节点,vnode 没有子节点,直接删除oldVnode下的子节点

6、oldVnode 没有子节点,vnode有子节点,直接更新oldVnode下增加子节点

7、oldVnode vnode 都有子节点,则进行子节点对比。

4、patchVnode核心逻辑

1、先比较key,根据 头头,尾尾,头尾,尾头,四种比较类型;当key相同的时候,就进入比较;

相关推荐
IMPYLH几秒前
Lua 的 Math(数学) 模块
开发语言·笔记·lua
我血条子呢3 分钟前
【CSS】类似渐变色弯曲border
前端·css
DanyHope4 分钟前
LeetCode 两数之和:从 O (n²) 到 O (n),空间换时间的经典实践
前端·javascript·算法·leetcode·职场和发展
hgz07105 分钟前
企业级多项目部署与Tomcat运维实战
前端·firefox
zhoumeina995 分钟前
懒加载图片
前端·javascript·vue.js
用户1887871069847 分钟前
SVG描边 - CSS3实现动画绘制矢量图
前端
码上行走7 分钟前
【实战】Flex布局-上下自适应
前端
DarkLONGLOVE7 分钟前
Vue的“小外挂”:玩转自定义指令
前端·javascript·vue.js
用户1887871069849 分钟前
前端实现页面截图及截图内容包含跨域图片时的处理
javascript
ccino .9 分钟前
pdf-xss文件制作过程
前端·pdf·xss