React的渲染原理能够用Virtual DOM和Reconciliation两个概念来解释:
1. Virtual DOM
Virtual DOM是React用来形容实在DOM树的一个JS对象树,其构造和实在的DOM树是一一对应的,通过Virtual DOM能够不便地操作和治理DOM树,进步了组件的渲染效率。
它的基本原理是在组件状态(state)发生变化时,React不间接操作实在的DOM树,而是先在内存中创立一个新的Virtual DOM树,而后通过比拟新旧Virtual DOM树的差别,只对更新的局部进行对应的DOM操作,这种更新形式也叫做Diff算法,是React在渲染过程中的外围算法。
2. Reconciliation
当组件状态发生变化时,React须要调用Reconciliation算法,来决定哪些DOM节点须要更新以及如何更新。它的根本流程是:
- 比拟新旧Virtual DOM的根节点,判断是否能够复用
- 如果根节点不能复用,则判断它们是否是不同类型的节点
- 如果是不同类型节点,则间接替换
- 如果是雷同类型节点,则依据节点的属性和子节点的内容进行复用或更新
在比拟新旧Virtual DOM时,React采纳了一种递归遍历的形式,这也是为什么更新操作不适宜过于频繁的起因,因为递归遍历是一个高耗费的操作。
总的来说,React的渲染原理利用了Virtual DOM和Reconciliation两个外围概念,进步了组件的渲染效率,同时也能保障DOM操作的可靠性和稳定性。