react虚拟dom:依据diff算法
前端:更新状态、更新视图;所以前端页面的性能问题主要是由Dom操作引起的,解放Dom操作复杂性 刻不容缓
因为:Dom渲染慢,而JS解析编译相对非常非常非常快!jsg更容易表示节点
所以:把js和html混写在一起来解决,React出现了!!!
diff算法是虚拟dom核心:
传统的diff算法复杂度是次方级别增长,而react用的优化过的diff算法:
过程:1.节点比较(属性、文本);2.记录差别(编号);3.增删改查(js);
优化点:
情景1:老的父节点和新的父节点只要不一样,ok,断臂!即使孩子节点一模一样,都要删除,渲染新的节点;
情景2:父节点相同,对比节点的属性、文本,进行替换或者删除