You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
# 简单的 React 思考 - Context
|
|
|
|
关于 React 中 Context 作为状态管理工具的思考具体可以这一篇 [[React 状态管理工具的简单思考]]
|
|
|
|
这里主要是对 Context API 的简单记录
|
|
|
|
|
|
|
|
### React.createContext
|
|
|
|
```javascript
|
|
|
|
const MyContext = React.createContext(defaultValue)
|
|
|
|
```
|
|
|
|
|
|
|
|
createContext 会创建一个 Context 对象,每个 Context 对象都会返回一个 Provieder 组件,它的子组件会订阅 Context 的变化
|
|
|
|
|
|
|
|
```javascript
|
|
|
|
<MyContext.Provider value={value} />
|
|
|
|
```
|
|
|
|
|
|
|
|
订阅了这个 Context 的组件会在组件树中查找离自己最近的 Provider 中读取到 Context 值,只有在找不到 Provider 时,defaultValue 参数才会生效,但是将 underfined 传递给 Provider 的时候,defaultValue 并不会生效
|