当前位置: 首页 > article >正文

React 19中useContext不需要Provider了。

文章目录

  • 前言
  • 一、React 19中useContext移除了Provider?
  • 二、使用步骤
  • 总结


前言

在 React 19 中,useContext 的使用方式有所更新。开发者现在可以直接使用 作为提供者,而不再需要使用 <Context.Provider>。这一变化简化了代码结构,提升了开发效率。文章中通过示例代码展示了如何创建上下文、在子组件中使用 useContext,以及如何通过 useState 更新上下文中的值。尽管 useContext 提供了便捷的跨组件数据共享方式,但使用时需注意避免滥用和性能问题。通过合理拆分上下文并结合 TypeScript 和性能优化,可以更好地发挥其优势。


一、React 19中useContext移除了Provider?

在 React 19 中,你可以将 渲染为提供者,就无需再使用 <Context.Provider> 了:

二、使用步骤

import { createContext, useContext, useState } from "react";interface MyContextType {name: string;setName: (value: string) => void;
}// 创建上下文
const MyContext = createContext<MyContextType>({} as MyContextType);const Son = () => {const name = useContext(MyContext);console.log(name);return <div>Son</div>;
};
// 子组件
const Child = () => {const name = useContext(MyContext);console.log(name);return <div>Child</div>;
};
const App = () => {const [name, setName] = useState("小路");return (<div><button onClick={() => setName("123")}>改变name值</button><MyContext value={{ name, setName }}><Child /><hr /><Son /></MyContext></div>);
};export default App;

在这里插入图片描述

在这里插入图片描述

总结

useContext 是 React 中一个强大且灵活的 Hook,它通过 Context API 提供了跨组件共享数据的便捷方式。然而,使用时需要谨慎,避免滥用和性能问题。通过合理拆分上下文、结合 TypeScript 和性能优化,可以更好地发挥 useContext 的优势。

http://www.lryc.cn/news/2380183.html

相关文章:

  • Json schema校验json字符串(networknt/json-schema-validator库)
  • 交易所开发:构建功能完备的金融基础设施全流程指南
  • Windows_Vs2022 C#语言开发环境构建
  • Axure疑难杂症:统计分析页面引入Echarts示例动态效果
  • 展锐Android14及更新版本split_build编译方法
  • 青少年ctf平台应急响应-应急响应2
  • k8s监控方案实践补充(二):使用kube-state-metrics获取资源状态指标
  • WEB安全--SQL注入--Oracle注入
  • 基于SpringBoot的小型民营加油站管理系统
  • 每日一道leetcode(新学数据结构版)
  • 深入掌握MyBatis:连接池、动态SQL、多表查询与缓存
  • Bootstrap 5 容器与网格系统详解
  • Java反射机制详解:原理、应用与实战
  • 技术架构缺乏灵活性,如何应对变化需求?
  • 【AI时代】Java程序员大模型应用开发详细教程(上)
  • 虚拟网络编辑器
  • 102. 二叉树的层序遍历递归法:深度优先搜索的巧妙应用
  • Github 2025-05-16 Java开源项目日报 Top9
  • MinerU安装(pdf转markdown、json)
  • Java卡与SSE技术融合实现企业级安全实时通讯
  • 第31讲 循环缓冲区与命令解析
  • mapbox-gl强制请求需要accessToken的问题
  • 数据结构(十)——排序
  • 美蛋工具箱:一站式解决图片、视频、音频和文档处理需求的聚合神器
  • fastadmin 数据导出,设置excel行高和限制图片大小
  • python打卡day16
  • Redis 学习笔记 5:分布式锁
  • 游戏开发实战(一):Python复刻「崩坏星穹铁道」嗷呜嗷呜事务所---源码级解析该小游戏背后的算法与设计模式【纯原创】
  • VS2017编译librdkafka 2.1.0
  • 02- 浏览器运行原理