购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.5 React虚拟DOM

React框架的核心优势之一,就是支持创建虚拟DOM来提高页面性能。那么,什么是虚拟DOM呢?其实,虚拟DOM这个概念很早就被提出来了,是相对于实际DOM而言的。

设计人员在设计传统HTML网页的UI时,都会在页面中定义若干的DOM元素,这些DOM元素是所谓的实际DOM。通常,页面中的实际DOM负责承载着外观表现和数据变化,任何外观形式的改变或数据信息的更新都要反馈到UI上,都是需要通过操作实际DOM来实现的。

于是,问题也就自然出现了。对于复杂的页面UI而言,往往会定义大量的实际DOM。频繁地操作大量实际DOM,往往会带来访问性能的严重下降,用户体验也会随之变差,这些都是设计人员所不希望看到的。因此,React框架专门针对这个现象引入了虚拟DOM机制,以避免频繁的DOM操作带来的性能下降问题。

React DOM类似于一种将相关的实际DOM组合在一起的集合,是有区别于传统概念上的DOM元素的,如果将其理解为DOM组件应该更为贴切。因此,React框架将React DOM称为虚拟DOM。

为了更好地让读者理解虚拟DOM的概念,我们分别以两种DOM方式来实现效果相同的页面,通过实际代码的区别来进行对比。有趣的是,在HTML DOM和React DOM语法中均定义了一个createElement()方法用来创建元素。当然,HTML DOM语法中的createElement()方法创建的是一个实际DOM,而React DOM中的createElement()方法创建的却是一个虚拟DOM。

下面先看一个通过HTML DOM语法中的createElement()方法创建实际DOM的代码实例,具体如下:

【代码1-3】(详见源代码目录ch01-js-createElement.html文件)

关于【代码1-3】的说明:

下面使用Firefox浏览器运行测试该HTML网页,具体效果如图1.8所示。

图1.8 JavaScript创建实际DOM

下面再看一个使用React DOM语法中的createElement()方法,以虚拟DOM方式实现的代码实例,具体如下:

【代码1-4】(详见源代码目录ch01-react-createElement.html文件)

关于【代码1-4】的说明:

下面使用Firefox浏览器运行测试该HTML网页,具体效果如图1.9所示。

图1.9 React创建虚拟DOM

如图1.8和图1.9中的箭头和标识所示,通过HTML DOM创建的实际DOM与通过React DOM渲染出来的虚拟DOM,二者的显示效果是完全相同的。 cxktpNwpxtlplnP6h0+vfORWLTXlb/YWwip5VC5L4Llv3JH5lAM0f7ICr40X7kmp

点击中间区域
呼出菜单
上一章
目录
下一章
×