这是我参与「第五届青训营 」伴学笔记创作活动的第 6 天
React简介
React 是一个用于构建用户界面的 JAVASCRIPT 库。
React 主要用于构建 UI,很多人认为 React 是 MVC中的 V(视图)。
React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。
React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它
React特点
- 声明式设计 −React采用声明范式,可以轻松描述应用。
- 高效 −React通过对DOM的模拟,最大限度地减少与DOM的交互。
- 灵活 −React可以与已知的库或框架很好地配合。
- JSX − JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。
- 组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。
- 单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单
应用场景
- 前端网页开发
- 移动(Android、IOS)原生应用开发
- 桌面应用开发(结合Electron)
React历史
- 2010年,Facebook首次引入了组合式组件的思想,启发了后来的React的设计
- 2011年,Jordan Walke创造了FaxJS,即React的原型
- 2012年,Jordan Walke创造了React
在使用React前的UI编程的痛点
- 状态更新时UI不会自动更新,需要手动地调用DOM来更新
- 缺乏基本的代码层面的封装和隔离,代码层面没有组件化
- UI之间的数据依赖关系需要手动维护,如果依赖链路长,则会多次Callback,带来性能开销
转换式系统与响应式系统
- 转换式系统:给定输入,求解输出,典型的例子是编译系统
- 响应式系统:监听事件,事件发生时会触发相应的动作,使得一些状态改变
响应式编程的特点
- 状态更新时UI自动会更新
- 前端代码组件化,可复用,可封装
- 声明就可表示状态间的依赖关系,比过程式编程简洁