知识点:
- 单向数据流即数据只能从父组件向自组件流动
- 四种 React 组件进行数据传递的方法:props/context/EventEmitter/Redux
React 是一个构建用户界面的 JavaScript 库,其思想是用数据驱动视图。
可以用如下代码来表示:
1 | UI = render(data) |
data 就是 React 界面的核心。在渲染用户界面时,data 不是静止不动的,它可能需要在父子组件之间共享、可能需要在兄弟组件共享以及其他层次关系的组件之间共享。下面我们就讲 4 种组件间数据传递的方式。
- props 和 回调函数
通过 props 传递,通过回调函数改变,这种方式适用于父子组件与兄弟组件间的数据传递,其他层级关系的组件使用此种方法传递比较冗余。
Context API
Context API 可以作为模块组件间的数据共享,共享的数据应该是在模块内的频繁使用和改变的。Context API 主要氛围三个部分:- 使用 React.createContext 创建 context
- 从 context 获取 Provider 和 Consumer
- 使用 Provider 提供数据,使用 Consumer 获取数据
Redux
在 Redux 的整个工作过程如下,其数据流是严格单向的。
发布订阅模式
发布订阅模式其实分为三个部分,依赖收集器、发布者和订阅者。
依赖收集器在订阅者订阅时,将回调函数收集起来,等到发布者发布的时候,执行依赖收集器里对应的订阅函数。