React.createContext
1、创建一个需要共享的Context对象:
2、如果一个组件订阅了Context,那么这个组件会从离自身最近的那个匹配的Provider中读取到当前的context值;
3、defaultValue是组件在顶层查找过程中没有找到对应的Provider,那么就使用默认值
Context.Provider
1、每个Context对象都会返回一个Provider React组件,它允许消费组件订阅context的变化;
2、Provider收到一个value属性,传递给消费组件;
3、一个Provider可以和多个消费组件有对应关系;
4、多个Provider也可以嵌套使用,里层的会覆盖外层的数据;
5、当Provider的value值变化时,它内部的所有消费组件都会重新渲染
Class.contextType
1、挂载在class上的contextType属性会被重新赋值为一个由React.createContext()创建的Context对象:
2、这能让你使用this.context来消费最近Context上的那个值;
3、你可以在任何生命周期中访问它,包括render函数中;
Context.Consumer
1、这里,React组件也可以订阅到context变更。这能让你在函数式组件中完成订阅context。
2、这里需要 函数作为子元素(function as child)这种做法;
3、这个函数接收当前的context值,返回一个React节点;
基本使用:::类组件

函数组件:::

多个嵌套::
