响应式系统与 React
这是我参与「第四届青训营 」笔记创作活动的的第 13 天💪💪💪
React 的历史与应用
- 前端应用开发,如 facebook、instagram 等
- 移动原生应用开发,如 discord,oculus 等
- 结合 electron 进行桌面应用开发
- 3D 场景开发
React 的设计思路
UI 编程痛点
- 状态更新,UI 不会自动更新,需要手动地调用 DOM 进行更新
- 欠缺基本的代码层面的封装和隔离,代码层面没有组件化
- UI 之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到 “Callback Hell”
响应式与转换式
- 状态更新,UI 自动更新
- 前端代码组件化,可复用,可封装
- 状态之间的互相依赖关系,只需声明即可
组件化
- 组件是组件的组合 / 原子组件
- 组件内拥有状态,外部不可见
- 父组件可将状态传入组件内部
组件设计
- 组件声明了状态和 UI 的映射
- 组件有 Props / State 两种状态
- “组件”可由其他组件拼装而成
状态归属问题
生命周期
React 的实现
问题一
JSX 不符合 JS 标准语法
问题二
返回的 JSX 发生改变时,如何更新 DOM