React| 青训营笔记

80 阅读2分钟

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

本堂课重点内容

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

重点知识点介绍

UI编程痛点

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

响应式编程

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

关于响应式系统与转换式系统

  • 转换式系统:给定输入求解输出,比如实现编译器,数值计算等场景
  • 响应式系统:监听事件,并由消息驱动,需要有一个监控系统去关注事件,并对事件做出响应,更新UI界面

组件化

  • 组件是组件的组合/原子组件

  • 组件内拥有自己的状态,外部不可见

  • 父组件可将状态传入组件内部

    状态归属问题:当多个子组件需要共享数据的时候,要将共享数据提升到父组件中,可以使用函数作为属性传给子组件,并在父组件中定义一个管理数据的函数,将函数传给子组件可以优化。

Virtual DOM

本质上是JS 和 DOM 之间的一个映射缓存,它在形态上表现为一个能够描述 DOM 结构及其属性信息的 JS 对象。

赋予了React声明式的API,使得我们从属性操作,事件处理和手动DOM更新这些在构建应用程序时必要的操作中解放出来。

课后个人总结

我比较熟悉VUE框架,对于React我了解尚浅,牛岱老师从 0 开始,带领我们共同推演 React 框架的设计思路,包括 React 设计的由来,具体的设计方案,剖析该框架为何演进为目前熟知的响应式编程模型,帮助我们更好地理解 React 代码。

引用参考

‌⁡⁡‍⁣‬⁡⁣⁢⁢⁣‬‍‌⁢‬‌⁡⁣‍‍‬⁢⁢⁤‍‬‍‍⁡⁤⁤‌⁣‍响应式编程与 React.pptx - 飞书云文档 (feishu.cn)