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

177 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的的第13天

一.React历史与应用

应用

1.前端开发应用,如Facebook、Instagram、Netfix、网页版

2.移动原生应用开发,如Instagram、Discord、Oculus

3.结合Electron,进行桌面应用开发

历史

二.React的设计思路

React的设计思路--UI编程痛点

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

React的设计思路--响应式与转换式

响应式系统:事件-->执行既定的回调-->状态变更

React的设计与实现--响应式编程:

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

1.状态更新,UI自动更新

“状态更新,UI不会自动更新,需要手动地调用DOM进行更新。”
2.前端代码组件化,可复用,可封装。
”欠缺基本的代码层面的封装和隔离,代码层面没有组件化。”
3.状态之间的互相依赖关系,只需声明即可。
“UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到"Callback Hell”。 ”

React的设计与实现--组件化

总结:

1.组件是 [组件的组合/原子组件]

2.组件内拥有状态,外部不可见

3.父组件可见状态传入组件内部

React的设计与实现--状态归属问题

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

思考:

组件设计:

1.组件声明了状态和UI的映射。

2.组件有Props/State 两种状态。

3.“组件”可由其他组件拼装而成。

组件代码:

1.组件内部拥有私有状态State

2.组件接受外部的Props状态提供复用性。

3.根据当前的State/Props,返回一个UI。

组件的设计思路--生命周期

三.React(hooks)写法

指令使编程:告诉计算机指令,一步一步

声明式编程:告诉他做,就不用管了

响应式:自动实现

四.React实现

Diff

五.React状态管理库

六.应用级框架分享