适用范围
缺点
- Context 只能存储单一值,当数据量大起来时,你可能需要使用createContext创建大量context;
- 不太适合大型对象
- 无论该组件是否依赖变化的值(如组件只用到了不变的 value.user.name, 但value.order.id 发生了变化)。
- 你可以通过useMemo来解决这个问题,但是就需要一定的成本来定制一个通用的解决方案;
- 无法处理异步请求。对于异步的逻辑,Context API并没有提供任何API,需要自己做封装;
使用指南
- child::
定义context
React中定义context
示例
-
首先,需要创建一个Context对象,并通过React.createContext()方法来实现:
const MyContext = React.createContext(默认值); -
接着,在父组件中使用Provider来提供数据和方法:
<MyContext.Provider value={/* 提供的数据和方法 */}> {/* 子组件 */} </MyContext.Provider>
-
- child::´®