hooks学习笔记3-useContext

103 阅读1分钟

useContext

  • 接收一个 context 对象(React.createContext 的返回值)并返回该 context 的当前值
  • 当前的 context 值由上层组件中距离当前组件最近的 <MyContext.Provider> 的 value prop 决定
  • 当组件上层最近的 <MyContext.Provider> 更新时,该 Hook 会触发重渲染,并使用最新传递给 MyContext provider 的 context value 值
  • useContext(MyContext) 相当于 class 组件中的 static contextType = MyContext 或者 <MyContext.Consumer>
  • useContext(MyContext) 只是让你能够读取 context 的值以及订阅 context 的变化。你仍然需要在上层组件树中使用 <MyContext.Provider> 来为下层组件提供 context

使用方法

import React,{createContext,useContext} from 'react';
const CounterContext = createContext({name:'wyt'});
const Demo = ()=>{
    return <Demo2></Demo2>
}
const Demo2 = ()=>{
    return <Demo3></Demo3>
}
const Demo3 = ()=>{
    const {name} = useContext(CounterContext)
    return <div>{name}</div>
}
export  default  function Father(){
    return (
        <CounterContext.Provider value={{name:'sld'}}>
            <Demo></Demo>
        </CounterContext.Provider>
    )
}