React|青训营

55 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天

React的历史与应用

应用场景

前端应用开发、移动原生应用开发、结合Electron进行桌面应用开发

React的前身:FaxJS

image.png

React的设计思路

响应式与转换式

转换式的系统:给定输入,求解输出(编译器+数值计算)
响应式的系统:监听事件,消息驱动(监控系统+UI界面)更适合前端

image.png

image.png

响应式编程的优点

  1. 状态更新,UI自动更新
  2. 前端代码组件化,可以复用,可以封装
  3. 状态之间的互相依赖关系只需要声明

组件化

关于组件

  1. 组件是组件的组合/原子组件
  2. 组件内部拥有状态,外部不可见
  3. 父组件可以将状态传入组件内部

组件代码需要满足什么条件

  1. 组件内部拥有私有状态State
  2. 组件接受外部的Props状态提供复用性
  3. 根据当前的State/Props返回一个UI

生命周期

image.png

Virtual DOM

image.png

更新整个DOM是很消耗性能的事情,不过通过求diff,只改变部分DOM可以解决消耗性能的问题
但是Diff也会面临一个tradeoff problem

image.png

那么,如何diff?

image.png

React状态管理库与应用级框架科普

状态机(State Machine)

描述当前状态,收到外部事件,迁移到下一个状态的模型。

React状态管理库的核心思想

image.png

应用级框架

image.png