响应式系统与 React | 青训营笔记

50 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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历史

  1. 2010年,Facebook首次引入了组合式组件的思想,启发了后来的React的设计
  2. 2011年,Jordan Walke创造了FaxJS,即React的原型
  3. 2012年,Jordan Walke创造了React

在使用React前的UI编程的痛点

  • 状态更新时UI不会自动更新,需要手动地调用DOM来更新
  • 缺乏基本的代码层面的封装和隔离,代码层面没有组件化
  • UI之间的数据依赖关系需要手动维护,如果依赖链路长,则会多次Callback,带来性能开销

转换式系统与响应式系统

  • 转换式系统:给定输入,求解输出,典型的例子是编译系统
  • 响应式系统:监听事件,事件发生时会触发相应的动作,使得一些状态改变

响应式编程的特点

  • 状态更新时UI自动会更新
  • 前端代码组件化,可复用,可封装
  • 声明就可表示状态间的依赖关系,比过程式编程简洁