这是我参与「第五届青训营 」笔记创作活动的第6天
本堂课重点内容
- React的历史与应用
- React的设计思路
- React(hook)的写法
- React的实现
- React状态管理库
- 应用级框架科普
重点知识点介绍
UI编程痛点
- 状态更新的时候,UI不会自动更新,需要手动调用DOM接口进行更新
- 欠缺基本的代码层面的封装和隔离,代码层面没有组件化
- UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到回调地狱
响应式编程
- 状态更新,UI也会进行更新
- 前端代码组件化,可复用,可封装
- 状态之间的互相依赖关系,只需声明即可
关于响应式系统与转换式系统
- 转换式系统:给定输入求解输出,比如实现编译器,数值计算等场景
- 响应式系统:监听事件,并由消息驱动,需要有一个监控系统去关注事件,并对事件做出响应,更新UI界面
组件化
-
组件是组件的组合/原子组件
-
组件内拥有自己的状态,外部不可见
-
父组件可将状态传入组件内部
状态归属问题:当多个子组件需要共享数据的时候,要将共享数据提升到父组件中,可以使用函数作为属性传给子组件,并在父组件中定义一个管理数据的函数,将函数传给子组件可以优化。
Virtual DOM
本质上是JS 和 DOM 之间的一个映射缓存,它在形态上表现为一个能够描述 DOM 结构及其属性信息的 JS 对象。
赋予了React声明式的API,使得我们从属性操作,事件处理和手动DOM更新这些在构建应用程序时必要的操作中解放出来。
课后个人总结
我比较熟悉VUE框架,对于React我了解尚浅,牛岱老师从 0 开始,带领我们共同推演 React 框架的设计思路,包括 React 设计的由来,具体的设计方案,剖析该框架为何演进为目前熟知的响应式编程模型,帮助我们更好地理解 React 代码。
引用参考
响应式编程与 React.pptx - 飞书云文档 (feishu.cn)