初始响应式系统与React(上)|青训营笔记

63 阅读2分钟

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

初始响应式系统与React

一、React的设计思路

UI编程痛点

1.状态更新,UI不会自动更新,需要手动地调用DOM进行更新。

2.欠缺基本的代码层面的封装和隔离,代码层面没有组件化。

3.UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到“Callback Hell”。

响应式与转换式

转换式——给定输入求解输出编译器数值计算

响应式——事件监听,消息驱动监控系统UI界面

转换式系统响应式系统

响应式编程

image.png image.png

二、React的设计与实现

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

“状态更新,UI不会自动更新,需要手动地调动DOM进行更新。”

2.前端代码组件化,可复用,可封装。

“欠缺基本的代码层面的封装和隔离,代码层面没有组件化。”

3.状态之间的相互依赖关系,只需声明即可。

“UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到“Callback Hell”。”

组件化

image.png 1.组件是组件的组合/原子组件

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

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

组件设计

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

2.组件有外部的Props/私有的State两种状态

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

三、React(hooks)的写法

image.png image.png

useState

传入一个初始值,返回一个状态,和set该状态的函数,用户可以通过调用该函数,来实现状态的修改。

useEffect

传入一个函数,和一个数组,数组是状态的数组,称作依赖项,该函数在mount时,和依赖项被set的时候会执行。

❗有副作用的函数,要传入useEffect来执行。副作用代表除了单纯的计算之外,还要做其他的一些事情,比如网络请求,更新DOM,iocalStorage存储数据等。