React-Hooks中的useContext

610 阅读1分钟

上下文

运行一个程序需要知道的所有变量

  • 全局变量是全局的上下文
  • 上下文是局部的全局变量

使用方法

  1. 使用C = createContext(initial)来创建上下文
const C = createContext(null)
//createContext需要引入
  1. 使用<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
);
}
  1. 在作用域内使用useContext(C)来使用上下文

在C.Provider圈定的范围内使用useContext,范围内任何子代元素都可以取用到n和setN

注意事项

useContext不是响应式

在另一个模块中将上文中C里面的值改变时,其他模块不会感知到这个变化。一个模块通过setN通知App,App得到一个新的n,又通知下面用到n的模块,这些模块对比发现新的n与之前的n不同,才会触发渲染。