~$ 存档

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  514 随笔 :: 26 文章 :: 15 评论 :: 62万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

【本篇为原创,转载请注明出处】

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版权协议,转载请附上原文出处链接及本声明。
posted on   LuoTian  阅读(37)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示