代码示例:
const contextValue = React.createContext(initialValue);<MyContext.Provider value={contextValue}>
每个 Context 对象都挂载了一个 <Provider> 组件,它允许消费组件订阅 context 的变化。
Provider 接收一个 value 属性,传递给消费组件。一个 Provider 可以和多个消费组件由对应关系。多个 Provider 也可以嵌套使用,里层的会覆盖外层的数据。Provider 的 value 值发生变化时,它内部的所有消费组件都会重新渲染。<Provider> 及其内部 <Consumer> 组件都不受制于 shouldComponentUpdate 函数,因此当 <Consumer> 组件在其祖先组件退出更新的情况下也能更新。通过新旧值监测来确定变化,使用了与 Object.is 相同的算法。