这是我参与「第五届青训营 」伴学笔记创作活动的第 7 天
React的历史与应用
应用场景
前端应用开发、移动原生应用开发、结合Electron进行桌面应用开发
React的前身:FaxJS
React的设计思路
响应式与转换式
转换式的系统:给定输入,求解输出(编译器+数值计算)
响应式的系统:监听事件,消息驱动(监控系统+UI界面)更适合前端
响应式编程的优点
- 状态更新,UI自动更新
- 前端代码组件化,可以复用,可以封装
- 状态之间的互相依赖关系只需要声明
组件化
关于组件
- 组件是组件的组合/原子组件
- 组件内部拥有状态,外部不可见
- 父组件可以将状态传入组件内部
组件代码需要满足什么条件
- 组件内部拥有私有状态State
- 组件接受外部的Props状态提供复用性
- 根据当前的State/Props返回一个UI
生命周期
Virtual DOM
更新整个DOM是很消耗性能的事情,不过通过求diff,只改变部分DOM可以解决消耗性能的问题
但是Diff也会面临一个tradeoff problem
那么,如何diff?
React状态管理库与应用级框架科普
状态机(State Machine)
描述当前状态,收到外部事件,迁移到下一个状态的模型。