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

53 阅读2分钟

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

课程重点

  1. React的历史与应用
  2. React的设计思路
  3. React(hooks)的写法
  4. React的实现
  5. React状态管理库
  6. 应用级框架科普

详细知识点介绍

React历史与应用

image.png

image.png

image.png

image.png

React的设计思路

UI编程痛点

  1. 状态更新,UI不会自动更新,需要手动地调用DOM进行更新
  2. 欠缺基本的代码层面的封装和隔离,代码层面没有组件化
  3. UI之间的数据依赖关系,需要手动维护,如果链路长,则会遇到“Callback Hell(回调地狱)”

响应式与转换式

image.png

响应式系统

事件->执行既定的回调->状态变更

前端UI

事件->执行既定的回调->状态变更->UI更新

React的设计与实现

响应式编程

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

image.png

组件化

image.png

总结

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

状态归宿问题

image.png

状态归属于两个节点向上寻找到最近的祖宗节点

js中,函数是一等公民

思考

  1. React是单向数据流,还是双向数据流? 单向
  2. 如何解决状态不合理上升问题?
  3. 组件的状态改变后,如何更新DOM?

组件设计

  1. 组件声明了状态和UI的映射
  2. 组件有Props/State两种状态
  3. “组件”可由其他组件拼装而成

image.png

image.png

image.png

生命周期

image.png

React (hooks)的写法

image.png

image.png

React的实现

image.png

image.png

image.png

image.png

image.png

image.png

image.png

React 状态管理库

image.png

image.png

image.png

image.png

应用级框架科普

image.png

image.png

image.png

image.png

引用参考

响应式系统与 React