内存中存储两颗树,一颗树是已经渲染的树结构(Current Tree),另一颗是即将变化的树(Fiber Tree)。
每次状态发生变化,会对原来的树结构进行遍历,遍历过程中,会通过比较每个节点的结构与之前 Fiber 结构的区别,生成新的树,最终将新的树与旧的树进行替换。
DOM Diff 的依据很多:会通过比较 ElementType、Props、文本、属性等相关来决定是复用原来的节点还是创建新的节点。
DOM Diff 在列表的对比中,会通过 key 来进行唯一标识符定位,如果 key 未发生变化,则认为节点可复用。只会进行移动 *** 作,而不会重新创建。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)