React Hooks—— context hooks

什么是Hooks

Hooks从语法上来说是一些函数。这些函数可以用于在函数组件中引入状态管理和生命周期方法。

React Hooks的优点

  1. 简洁
    从语法上来说,写的代码少了
  2. 上手非常简单
    • 基于函数式编程理念,只需要掌握一些JavaScript基础知识
    • 与生命周期相关的知识不用学,react Hooks使用全新的理念来管理组件的运作过程
    • 与HOC相关的知识不用学,React Hooks能够完美解决HOC想要解决的问题,并且更可靠
    • Mobx取代了Redux做状态管理
  3. 代码复用性更好
  4. 与Typescript结合更简单

React Hooks的缺点

  1. 状态不同步
    在异步操作的函数中访问的状态还是原来的状态的值
  2. useEffect依赖问题
    当useEffect依赖的数据变多后会导致频繁触发

React Hooks的注意事项

  1. 命名规范
    自定义Hooks的命名一律使用use作为前缀,形如:useXXX
  2. 仅在最外层调用React Hooks
  3. 仅从react函数中调用react Hooks
    在自定义Hooks或者组件中调用Hooks
useContext

Context是一种对其所包含组件树提供全局共享数据的技术,而useContext是在React Hooks对Context进行的封装。它可以帮助我们跨越组件层级直接传递函数,实现数据共享,让使用变得简单。

createContext

createContext(initialValue):

  • initialValue:initialValue是context的初始值

useContext返回的对象包含两个属性:

  • Provider:提供者,是React组件使用Provider标签包裹后的组件,自身及其后代都可以访问Context的值
  • Consumer:消费者,是React组件使用Consumer包裹后,可以使用render props的方式渲染内容,获取context的值。
jsx 复制代码
const MyContext = React.CreateContext()

function Demo() {
   const [userName,setUserName]=useState('');
   const {Provider,Consumer} = useContext(MyContext);
    return <>
    <Provider value={userName}>
        <B></B>
    </Provider>
    </>
}

function Child {
    const context = useContext(MyContext);
	render(){
        return <>
        <C></C>
        </>
    }
} 
function C {
    return <>
    <Consumer>
    	{value => `姓名是${value.userName}`}
    </Consumer>
    </>
}
相关推荐
苏渡苇1 分钟前
从零搭建 Vue 3 工程化项目:Vite + TypeScript + Pinia + Element Plus 实战
前端·vue.js·typescript
霸道流氓气质3 分钟前
在线 AI 绘图平台:Flux 模型集成、Serverless 弹性部署与 ComfyUI 工作流的 React + Spring AI 全栈实战
人工智能·react.js·serverless
keyipatience4 分钟前
CSS学习(2)|元素显示模式、盒模型、Flex 布局
javascript·css·html·css3
CallFay云起未来5 分钟前
2026年AI客服能不能减少人工回复?从知识检索到人机协同的技术实现
java·大数据·前端·人工智能·架构·文心一言
IT_陈寒7 分钟前
一文搞懂SpringBoot的核心概念
前端·人工智能·后端
棉猴18 分钟前
玩游戏学Python12-布尔型与条件语句
java·前端·python·玩游戏·游戏编程·pgzero
晚枫歌F18 分钟前
dpdk实现arp协议,icmp协议-----架构优化
开发语言·javascript·架构
java_nnnn22 分钟前
Spring Web MVC 入门:从一个 URL 到 Java 后端完整处理请求
java·前端·spring boot·spring
丨白色风车丨34 分钟前
LangChain Agent 从入门到实战:创建与调用参数全解析
前端·python·langchain
Jmyd01238 小时前
Web端3D营销展厅技术实现路径:从素材上云到线索回流的数据链路
前端·3d·性能优化·三维数字化