为何react这么快呢 ?react
由于react用了虚拟DOM;算法
可是每次虚拟DOM转真实DOM不也是很浪费性能吗 ?性能优化
nice,因此关键点在Diff算法这里,去对比新旧DOM树,然后经过补丁去更新到真实DOM上;性能
这个比对不是也很浪费时间吗 ?优化
正常状况下,比较两个树形结构差别的算法的时间复杂度是O(N^3),这个效率显然是没法接受的。spa
react经过总结DOM的实际使用场景提出了两个在绝大多数实践场景下都成立的假设,基于这两个假设,React实现了在O(N)时间复杂度内完成两棵虚拟DOM树的比较。效率
两个假设是:渲染
(1)若是两个元素的类型不一样,那么它们将生成两棵不一样的树;im
(2)为列表中的元素设置key属性,用key标识对应的元素在屡次;总结
面对性能优化咱们能作什么呢 ?
一、使用生产环境版本的库;
二、避免没必要要的组件渲染;
三、使用key;