首页 > 其他分享 >05|Context API

05|Context API

时间:2022-12-28 21:23:06浏览次数:33  
标签:createContext 05 value React API Context Provider Consumer

Context API 是 React 官方提供的一种组件树全局通信的方式。

Context API 有 3 个关键的要素:React.createContext、Provider、Consumer。

我们通过调用 React.createContext,可以创建出一组 Provider。Provider 作为数据的提供方,可以将数据下发给自身组件树中任意层级的 Consumer,这三者之间的关系用一张图来表示:

注意:Cosumer 不仅能够读取到 Provider 下发的数据,还能读取到这些数据后续的更新。这意味着数据在生产者和消费者之间能够及时同步,这对 Context 这种模式来说至关重要。

从编码的角度认识“三要素”

React.createContext,作用是创建一个 context 对象,在创建的过程中,我们可以选择性地传入一个 defaultValue:

const AppContext = React.createContext(defaultValue)

从创建出的 context 对象中,我们可以读取到 Provider 和 Consumer:

const { Provider, Consumer } = AppContext

Provider,可以理解为“数据的 Provider(提供者)”。

我们使用 Provider 对组件树中的根组件进行包裹,然后传入名为“value”的属性,这个 value 就是后续在组件树中流动的“数据”,它可以被 Consumer 消费。使用示例如下:

<Provider value={title: this.state.title, content: this.state.content}>
  <Title />
  <Content />
 </Provider>

Consumer,顾名思义就是“数据的消费者”,它可以读取 Provider 下发下来的数据。其特点是需要接收一个函数作为子元素,这个函数需要返回一个组件。像这样:

<Consumer>
  {value => <div>{value.title}</div>}
</Consumer>

注意,当 Consumer 没有对应的 Provider 时,value 参数会直接取创建 context 时传递给 createContext 的 defaultValue。 

标签:createContext,05,value,React,API,Context,Provider,Consumer
From: https://www.cnblogs.com/superlizhao/p/17011303.html

相关文章