最近在学习react diff算法,有一个地方一直没弄明白,tree diff 和 component diff的区别在哪?
在我看来好像没有tree diff这一回事,都是component diff,同层的component比较了之后,同一个类型的就不变,不同类型的就把这个节点删掉(包括所有的子节点),挂上新类型的节点(还有它所有的子节点)
最近在学习react diff算法,有一个地方一直没弄明白,tree diff 和 component diff的区别在哪?
在我看来好像没有tree diff这一回事,都是component diff,同层的component比较了之后,同一个类型的就不变,不同类型的就把这个节点删掉(包括所有的子节点),挂上新类型的节点(还有它所有的子节点)
tree diff 只会比较整棵树的结构,比如两棵树在同一个高度同一位置是不是有相同数量的子节点,但不会去比较这些子节点是不是一样,比较子节点之间的差异会在 component diff 中进行。
3 回答1.9k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
4 回答1.6k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.6k 阅读✓ 已解决
2 回答1.4k 阅读✓ 已解决
包含和被包含的关系啊……
component diff 先看类型是否相同,相同的话就开始 tree diff 了啊……