请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于diff算法优化的问题

为什么循环以外的标签都不使用key?
假如根节点tag相同而key 是undefined,那二者相同,则是相同节点,整个dom都将不再深度比较???

正在回答 回答被采纳积分+3

1回答

双越 2020-09-27 18:48:06

第一,所有节点都可以使用 key  。

第二,key 是 undefined 的情况,也会继续进行深度比较的。

0 回复 有任何疑惑可以回复我~
  • 提问者 内六角 #1
    key是undefined的情况,源码中判断是someVnode呢??
    ```js
    function someVnode(vnode1, vnode2) {
        return vnode1.key === vnode2.key && vnode1.sel === vnode2.sel;
    }
    ```
    
    为什么又说会深度比较了,那这个判断有啥意义??
    回复 有任何疑惑可以回复我~ 2020-09-27 19:28:34
  • 双越 回复 提问者 内六角 #2
    如果 sel 相同,key 都是 undefined 的话,sameVnode 会返回 true 。所以,会继续深度比较。
    回复 有任何疑惑可以回复我~ 2020-09-28 08:38:36
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信