请说明 React 中 Context API 的核心属性有哪些?
考察说明
考查对 React Context API 基础概念的掌握,包括其属性构成及作用。
回答思路
- 【回答框架 1】React 的 Context API 主要用于跨组件层级传递数据,避免逐层传递 props。其主要属性包括 Context 对象、Provider 和 Consumer。
- 【回答框架 2】Context 对象由 React.createContext 创建,包含 Provider 和 Consumer 两个组件属性。Provider 用于提供数据,其 value 属性用于设定要传递的数据,当 value 变化时,所有消费该 Context 的组件会重新渲染。
- 【回答框架 3】Consumer 用于订阅 Context 变化,在函数组件中也可通过 useContext 钩子来消费 Context,使得代码更简洁。
- 【关键点 1】Context API 核心属性是 Provider 和 Consumer,分别负责提供和消费数据。
- 【关键点 2】Provider 的 value 变化会触发依赖组件的更新,且不受中间组件 shouldComponentUpdate 影响。
- 【关键点 3】useContext 钩子简化了 Consumer 的使用方式。
- 【易错点 1】Context 会导致组件不必要重渲染,需谨慎使用,避免滥用。
- 【易错点 2】Provider 的 value 应使用 memo 或 useMemo 避免因父组件重渲染导致 value 变化,引发子组件频繁更新。