什么是React?
原生JavaScript痛点
- 原生JavaScript操作DOM频繁、效率低(通过DOM-API操作页面UI)
- 使用JavaScript直接操作DOM,浏览器会进行大量的重绘重排
- 原生JavaScript没有组件化编码方案,代码复用率低
React特点:
虚拟DOM+优秀的diffing算法:
React也是以数据驱动的,每次数据变化React都会扫描整个虚拟DOM树,自动计算与上次虚拟DOM的差异变化,然后针对需要变化的部分进行实际的浏览器DOM更新。尽量减少与真实DOM的交互。
组件化:
React可以从功能角度横向划分,将UI分解成不同组件,各组件都独立封装,整个UI是由一个个小组件构成的一个大组件,每个组件只关系自身的逻辑,彼此独立。
单项数据流:
React设计者认为数据双向绑定虽然便捷,但在复杂场景下副作用也是很明显,所以React更倾向于单向的数据流动-从父节点传递到子节点。(使用ReactLink也可以实现双向绑定,但不建议使用)
组件化、声明式编码:
提高开发效率及组件复用率
在React Native:
可使用React语法进行移动端开发