|
|
@ -17,6 +17,15 @@ createContext 会创建一个 Context 对象,每个 Context 对象都会返回 |
|
|
|
多个 Provider 可以嵌套使用,里层的会覆盖外层的数据。 |
|
|
|
多个 Provider 可以嵌套使用,里层的会覆盖外层的数据。 |
|
|
|
当 Provider 中的 value 值发生变化时,它内部的所有消费组件也就是子组件都会重新渲染,这个用于判断值是否发生变化的方法和 Object.is 使用了同样的算法, 也就是说如果 value 是一个引用类型,可能会导致一些意外的问题 |
|
|
|
当 Provider 中的 value 值发生变化时,它内部的所有消费组件也就是子组件都会重新渲染,这个用于判断值是否发生变化的方法和 Object.is 使用了同样的算法, 也就是说如果 value 是一个引用类型,可能会导致一些意外的问题 |
|
|
|
在 Hook 之前,在 React Class 组件中使用和消费 Context 的值可以使用 contextType 和 Consumer。 |
|
|
|
在 Hook 之前,在 React Class 组件中使用和消费 Context 的值可以使用 contextType 和 Consumer。 |
|
|
|
|
|
|
|
|
|
|
|
```javascript |
|
|
|
```javascript |
|
|
|
class MyClass extenet |
|
|
|
class MyClass extends React.Component { |
|
|
|
``` |
|
|
|
render() { |
|
|
|
|
|
|
|
const value = this.context; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
MyClass.contextType = MyContext; |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
contextType 属性可以让类组件使用 this.context 来获取 **最近**的 Context 上的值,并且可以在任何生命周期中访问到它 |
|
|
|
|
|
|
|
|
|
|
|