react简介:
react由facebook公司推出,因为该公司不满足于市面上现有的前端框架,他们认为MVC只会让前端越来越复杂,因此react就诞生了,react只关注与视图层,官方对react的定位是:一个快速构建前端视图的javaScript库。react使用虚拟dom构建真实dom。
react特点:
-
声明式设计 ?React采用声明范式,可以轻松描述应用。 -
高效 ?React通过对DOM的模拟,最大限度地减少与DOM的交互。 -
灵活 ?React可以与已知的库或框架很好地配合。 -
JSX ? JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。 -
组件 ? 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。 -
单向响应的数据流 ? React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单
react中虚拟dom和真实dom的区别:
原生JS或JQ操作DOM时,浏览器会从构建DOM树开始从头到尾执行一遍流程。 在一次操作中,我需要更新10个DOM节点,浏览器收到第一个DOM请求后并不知道还有9次更新操作,因此会马上执行流程,最终执行10次。
Web界面由DOM树(树的意思是数据结构)来构建,当其中一部分发生变化时,其实就是对应某个DOM节点发生了变化。
一次操作中有10次更新DOM的动作,虚拟DOM不会立即操作DOM,而是将这10次更新的diffff内容保存到本地一个JS对象中,最终将这个JS对象一次性attch到DOM树上,再进行后续操作,避免大量无谓的计算量。
用JS对象模拟DOM节点的好处是,页面的更新可以先全部反映在JS对象(虚拟DOM)上,操作内存中的JS对象的速度显然要更快,等更新完成后,再将最终的JS对象映射成真实的DOM,交由浏览器去绘制。
|