12.react虚拟dom

123 阅读1分钟

wenku.baidu.com/view/ea5bc4…

baijiahao.baidu.com/s?id=171464…

  • 虚拟(virtual)DOM,不总是直接操作DOM(批量更新,减少更新次数)\

  • 高效的DOM Diff算法,最小化页面重绘(减小页面更新区域)

  • jsx语法:主要用来创建虚拟DOM对象组件实例对象的三大属性:props, refs, state\

React JSX

****\

react定义的一种类似于XML的JS拓展语法:XML+JS
作用:用来创建react虚拟DOM对象

虚拟DOM(元素)是一个一般的js对象,准确的说是一个倒立的对象树

虚拟DOM保存了真实DOM的层次关系和基本属性,与真实DOM一一对应

如果只是更新虚拟DOM,页面不会重绘,大大提高了绘制效率。

Vitual DOM 算法的基本步骤

用JavaScript对象结构表示DOM树的结构,然后用这个树结构建立真正的DOM树,插到文档当中。

当状态变更的时候,重新构建一棵新的对象树。然后新的树和旧的树进行比较,记录差异。

把 步骤2 中记录的差异应用到 步骤1 所构建的真正的DOM树上,更新视图。

深入理解

Virtual DOM 本质上就是在JS 和 DOM 之间做了一个缓存。与CPU与硬盘的缓存原理类似。