, 或删除或增加了若干项, 如何通过对比前后的虚拟DOM树, 最小化地更新真实DOM?..., Diffing算法只能按顺序依次比对并重建从新元素开始的后续所有子节点, 造成极大的开销浪费.解决方案是为一组列表项添加 key 属性, 这样React就可以方便地比对出插入或删除项了.关于 key...属性, 应稳定、可预测且在列表内唯一(无需全局唯一), 如果数据有ID的话直接使用此ID作为 key, 或者利用数据中的一部分字段哈希出一个key值.避免使用数组索引值作为 key, 因为当插入或删除元素后....在此参考了 pomb.us/build-your-… 中提供的 useState Hook的实现代码, 有助于理解在执行 setState 方法后都发生了什么:function useState(initial...// 执行setState后应重新触发渲染 wipRoot = { dom: currentRoot.dom, props: currentRoot.props,