这是我参与「第五届青训营 」伴学笔记创作活动的第1天。
一、React是?
React实际上是一个将数据渲染为HTML视图的js库,由facebook开发。facebook当年在构建instagram网站的时候提出两个问题:
- 数据绑定的时候总是操作dom,消耗成本高导致性能下降
- 网站数据流难以控制,太乱了
所以facebook开发了React,并在13年开源。在原生JS操作DOM效率低、消耗性能高的情况下,这样的框架能够很好的减轻我们的开发成本。
二、React的特点是?
- 单向响应数据流:所有数据包括组件传递的数据全都为单向传递。
- 构建复用的组件:使用React可以构建出许多更加方便复用的组件,在大项目开发中可以很好的提高开发效率。
- 使用JSX:JSX是Javascript的拓展,是一种预编译的JavaScript语言,它可以让JavaScript和HTML进行混搭使用。
- 使用虚拟DOM:使用虚拟DOM可以大幅度减少对真实DOM的交互,因为对真实DOM进行交互会导致浏览器的回流与重绘,这样可以提高性能。
三、React的优点是?
- 性能高:React由于采取了虚拟DOM操作,并配合diff算法(简单来说就是对比虚拟DOM的初始状态与结束状态,过滤掉一些不必要的节点操作,然后将结束状态的DOM赋值给真实DOM),可以减少对真实DOM的操作,减少浏览器中的回流与重绘,提高性能,使得渲染更高效。
- 兼容性佳:由于虚拟DOM的引入,有效解决了跨浏览器的兼容性问题,通过提供的标准化API可以有效提高多端开发的兼容性。
- 组件化开发:由于在React中便于构造组件,可以使得代码更加模块化,重用代码更容易,可维护性更高。因此在某部分代码出现问题时,可以很快找出问题代码并隔离进行修复。并且它们可以引入其它组件。这等同于提高了代码的可维护性