react 底层 diff 算法

虚拟dom是解决dom渲染低效的问题。

虚拟dom是把一个真实的dom树转化成一个js dom树,然后用diff算法来比较两个树的不同,最后把比较的结果进行dom渲染。

diff算法:逐层比较,发现相同的就保留,发现不同的就创建。

diff算法有两个缺点:1、对于这个树变化特别大,渲染是低效的。

                             2、兄弟节点,排序,插入是低效的。

解决办法(两个假设):1、同一个组件产生相同的dom结构,不同的组件,产生不同的dom结构。

               2、对同一层次的一组节点,它们可以通过唯一的id进行区分。

算法上的优化是React整个界面Render的基础,事实也证明两个假设是合理精确的。

 

posted @ 2019-11-25 11:12  清明|雨上  阅读(189)  评论(0)    收藏  举报