了解React | 青训营笔记

53 阅读1分钟

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

React的设计思路

一、UI编程痛点

  1. 状态更新,UI无法自动更新,需要手动调用Dom
  2. 代码层没有组件封装的概念
  3. UI与数据依赖性太强,牵涉到的依赖越长就越可能引起“callback hell”

响应式设计

  • 监听事件、消息 => 执行既定的回调 => 状态变更 => 更新UI

那么希望做到如下三个方面:

  1. 状态更新,UI自动更新
  2. 代码组件化,可复用,可封装(组件是组合,内部状态外部不可见,父组件可将状态传递到组件内部)
  3. 状态之间相互依赖,只需声明即可
React是单向数据流
组间设计: 状态和UI映射、有props(传递)和State两种状态、可有其他组件组成

二、hooks函数

image.png

声明时用函数控制改变,手动控制(usestate返回一个数组,变量和它的控制函数)

image.png

三、React的实现

  1. 返回的东西不符合JS标准?
  • 转译成下图所示(右)

image.png

  1. 返回部分发生改变如何更新DOM
  • 虚拟DOM(真实DOM是浏览器内部的,无法随便改变),因此我们建立一个类似DOM的树状结构并和DOM建立一一对应关系。 3.state/props更新时,要重新触发render函数
  • 父组件他下面的子组件以及其后代都要递归render

image.png

四、状态管理库

  • 将状态抽离到UI外部进行统一管理,将所有组件看做一个UI

image.png

  • 状态机:收到外部事件,迁移到下一个转态

image.png