tree diff 和 component diff的区别?
最近在学习react diff算法,有一个地方一直没弄明白,tree diff 和 component diff的区别在哪?
在我看来好像没有tree diff这一回事,都是component diff,同层的component比较了之后,同一个类型的就不变,不同类型的就把这个节点删掉(包括所有的子节点),挂上新类型的节点(还有它所有的子节点)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
包含和被包含的关系啊……
component diff 先看类型是否相同,相同的话就开始 tree diff 了啊……
tree diff 只会比较整棵树的结构,比如两棵树在同一个高度同一位置是不是有相同数量的子节点,但不会去比较这些子节点是不是一样,比较子节点之间的差异会在 component diff 中进行。
更细节的可以看React 源码剖析系列 - 不可思议的 react diff