React中要解决的核心问题:为何以及如何使用(JSX表示的)虚拟DOM?...如何对虚拟DOM进行处理, 使其高效地渲染出来?1.1 虚拟DOM是什么? 为何要使用虚拟DOM?...的末尾添加了新的子节点时, 上述Diffing算法的开销较小; 但当新元素被插入到列表开头时, Diffing算法只能按顺序依次比对并重建从新元素开始的后续所有子节点, 造成极大的开销浪费.解决方案是为一组列表项添加...key 属性, 这样React就可以方便地比对出插入或删除项了.关于 key 属性, 应稳定、可预测且在列表内唯一(无需全局唯一), 如果数据有ID的话直接使用此ID作为 key, 或者利用数据中的一部分字段哈希出一个...的 child 属性指向第一个子Fiber, 然后按顺序将子Fiber的 sibling 属性指向下一个子Fiber;对比(Diffing)新旧Fiber节点的 type props key 等属性,