issues
search
sleepyShen1989
/
blog
MIT License
0
stars
0
forks
source link
【源码】v-for中的key
#8
Open
sleepyShen1989
opened
2 years ago
sleepyShen1989
commented
2 years ago
作用
用在Vue的虚拟DOM算法,在新旧nodes对比时辨识VNodes
解决dom删改时的某些bug
区别
有key,使用patchKeyedChildren方法
从头开始遍历比较,如果type或者key不同则跳出循环
从尾部开始遍历比较,如果type或者key不同则跳出循环
旧节点遍历完毕,依然有新节点,则挂载新节点 (common sequence + mount)
新节点遍历完毕,依然有旧节点,则卸载旧节点 (common sequence + unmount)
未知序列patch
没有key,使用patchUnKeyedChildren方法
从前往后逐个patch。尽可能复用节点
a,b,c,d -> a,b,e,c,d
(a->a,b->b,c->e,d->c, add d)
Vnode优点
多平台
帮助diff算法进行性能优化
作用
区别
Vnode优点