上下文
运行一个程序需要知道的所有变量
- 全局变量是全局的上下文
- 上下文是局部的全局变量
使用方法
- 使用
C = createContext(initial)
来创建上下文
const C = createContext(null)
//createContext需要引入
- 使用
<C.provider>
圈定作用域
function App(){
const [n,setN] = useState(0)
return(
<C.Provider value ={{n,setN}} > //{{n:n, setN:setN}}的缩写
<div className='App'>
<h1>RUA</h1>
</div>
</C.Provider>
//即使用`C.Provider
);
}
- 在作用域内使用
useContext(C)
来使用上下文
在C.Provider圈定的范围内使用useContext,范围内任何子代元素都可以取用到n和setN
注意事项
useContext不是响应式:
在另一个模块中将上文中C里面的值改变时,其他模块不会感知到这个变化。一个模块通过setN通知App,App得到一个新的n,又通知下面用到n的模块,这些模块对比发现新的n与之前的n不同,才会触发渲染。