react diff算法剖析总结

原文:https://zhuanlan.zhihu.com/p/20346379react

总结一下我的看完以后的理解:算法

一、tree diff:只对相同层级的节点进行比较,若是子树在新树种不存在了,则直接删除。若是新加了树就是建立,那么若是进行了跨层级的树的移动怎么办?答案是直接删除移动前的树,在移动后的位置建立一颗如出一辙的。component

因此在react中尽可能仍是不要进行跨层级的移动。element

二、component diff:若是是相同的组件,则继续比较virtual DOM tree。若是不是,则直接删除整个组件并替换成相同的组件get

三、element diff:有移动,建立和删除操做,这个不用说都直接什么意思。具体的算法细节能够看原文,这里不深究。总结

相关文章
相关标签/搜索