【本篇为原创,转载请注明出处】
vue的源码分为三块,其中最后一部分称为patch,也就是根据虚拟DOM进行更新。这一截内容的思路来源于snabbdom。
如果要把vue源码100%看懂,这一块是必不可少的。前段时间看了前两部分,也是在这最后一截没有仔细往下看。
但是snabbdom的源码记录的比较早,这次希望能完整的做个笔记。
patch算法的思路
很多思想难以理解,就在于没有一个能概括表达核心思想的例子,而这个例子又是通俗易懂的。因此,首先给出一个例子:
有两个平常的数组,分别为:
1,2,3,4,5 ->原数组,或称为旧数组
1,4,6,1000,100,5 ->新数组
目标:查找两个数组的不同,用新数组更新旧数组。
更新旧数组的意思是指,在旧数组的原地进行,比如增删改。新数组是个参照物,改变旧数组使之更新
首先,我们只用眼睛观察,得到最终结果如下:
1,4,6,1000,100,5
1、旧数组中有,而新数组没有的则要删除,这里是2和3
2、新数组有,而旧数组没有的要增加,这里是6,1000,100
3、旧数组有,新数组也有的,保持不变,这里是1,4,5
现在,怎么能实现这个算法呢?
————————————————
版权声明:本文为博客园博主「天涯」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架