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相同的时候,就进入比较;

相关推荐
崇山峻岭之间几秒前
Matlab学习记录31
开发语言·学习·matlab
fengbizhe10 分钟前
bootstrapTable转DataTables,并给有着tfoot的DataTables加滚动条
javascript·bootstrap
刘一说11 分钟前
TypeScript 与 JavaScript:现代前端开发的双子星
javascript·ubuntu·typescript
凌览14 分钟前
别再死磕 Nginx!http-proxy-middleware 低配置起飞
前端·后端
你怎么知道我是队长40 分钟前
C语言---输入和输出
c语言·开发语言
mmz120743 分钟前
二分查找(c++)
开发语言·c++·算法
EndingCoder1 小时前
类的继承和多态
linux·运维·前端·javascript·ubuntu·typescript
你怎么知道我是队长1 小时前
C语言---文件读写
java·c语言·开发语言
用户47949283569151 小时前
React 终于出手了:彻底终结 useEffect 的"闭包陷阱"
前端·javascript·react.js
陌路201 小时前
C++30 STL容器 -deque双端队列
开发语言·c++