用途

Context的用途:Context 提供了一种在组件之间共享此类值的方式,而不必显式地通过组件树的逐层传递 props。

API

React.createContext

const MyContext = React.createContext(defaultValue);

Context.Provider

<MyContext.Provider value={
   /* 某个值 */}>

Class.contextType

MyClass.contextType = MyContext;

Context.Consumer
这里,React 组件也可以订阅到 context 变更。这能让你在函数式组件中完成订阅 context。

<MyContext.Consumer>
  {
   value => /* 基于 context 值进行渲染*/}
</MyContext.Consumer>

Context.displayName

MyContext.displayName = 'MyDisplayName';

警告

Context 主要应用场景在于很多不同层级的组件需要访问同样一些的数据。请谨慎使用,因为这会使得组件的复用性变差。