在本节课中,讲师将从 0 开始,带领大家共同推演 React 框架的设计思路,包括 React 设计的由来,具体的设计方案,剖析该框架为何演进为目前熟知的响应式编程模型,帮助大家更好地理解 React 代码。课程重点有: UI 编程痛点 响应式与转换式 React 设计与实现 - 组件化 React 设计与实现 – 状态归属问题 React 设计与实现 – 生命周期 状态更新,UI 不会自动更新,需要手动地调用DOM进行更新。 欠缺基本的代码层面的封装和隔离,代码层面没有组件化。 UI之间的数据依赖关系,需要手动维护,如果依赖链路长,则会遇到“Callback Hell”。 响应式编程的思路大概如下:你可以用包括 Click 和 Hover 事件在内的任何东西创建 Data stream。Stream 廉价且常见,任何东西都可以是一个 Stream:变量、用户输入、属性、Cache、数据结构等等。举个例子,想像一下你的 Twitter feed 就像是 Click events 那样的 Data stream,你可以监听它并相应的作出响应。在这个基础上,你还有令人惊艳的函数去组合、创建、过滤这些 Streams,这就是函数式魔法的用武之地。Stream 能接受一个,甚至多个 Stream 为输入,你可以融合两个 Stream,也可以从一个 Stream 中过滤出你感兴趣的 Events 以生成一个新的 Stream,还可以把一个 Stream 中的数据值 映射到一个新的 Stream 中。组件化是React的核心思想,也是我们后续课程的重点,前面我们封装的App本身就是一个组件:组件化提供了一种抽象,让我们可以开发出一个个独立可复用的小组件来构造我们的应用。任何的应用都会被抽象成一颗组件树。React 提供了一些管理状态的原生 hooks API,简洁易懂,非常好上手。用原生的 hooks 方法就可以很轻松地实现计数器功能,只要通过 useState 方法在根组件定义计数器的状态和改变状态的方法,并层层传递给子组件就可以了。通过本节课的学习使我加深了对React编程的理解,对前端的学习有了更深入的思考。