这是我参与「第四届青训营 」笔记创作活动的的第13天
一.React历史与应用
应用
1.前端开发应用,如Facebook、Instagram、Netfix、网页版
2.移动原生应用开发,如Instagram、Discord、Oculus
3.结合Electron,进行桌面应用开发
历史
二.React的设计思路
React的设计思路--UI编程痛点
- 状态更新,U1不会自动更新,需要手动地调用DOM进行更新。
- 欠缺基本的代码层面的封装和隔离, 代码层面没有组件化。
- 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)写法
指令使编程:告诉计算机指令,一步一步
声明式编程:告诉他做,就不用管了
响应式:自动实现