|
|
@ -13,4 +13,6 @@ createContext 会创建一个 Context 对象,每个 Context 对象都会返回 |
|
|
|
<MyContext.Provider value={value} /> |
|
|
|
<MyContext.Provider value={value} /> |
|
|
|
``` |
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
订阅了这个 Context 的组件会在组件树中查找离自己最近的 Provider 中读取到 Context 值,只有在找不到 Provider 时,defaultValue 参数才会生效,但是将 underfined 传递给 Provider 的时候,defaultValue 并不会生效 |
|
|
|
订阅了 Context 的组件会在组件树中查找离自己最近的 Provider 中读取到 Context 值也就是 Provider 中的 value 属性,只有在找不到 Provider 时,createContext 中的 defaultValue 参数才会生效,但是将 underfined 传递给 Provider 的时候,defaultValue 并不会生效。 |
|
|
|
|
|
|
|
多个 Provider 可以嵌套使用,里层的会覆盖外层的数据。 |
|
|
|
|
|
|
|
当 Provider 中的 value 值发生变化时,它内部的所有消费组件也就是子组件都会重新渲染,这个用于判断值是否发生变化的方法和 Object.is 使用了同样的算法, ye'jiu'sh |