react 之 useContext

news/2024/9/27 10:19:25

useContext

概念:useContext 创建上下文,主要是解决组件跨级通信、传值

示例:

步骤1、使用 creatContext 方法创建一个 context 实例对象(通常在组件树的顶层)

import React from 'react';const MyContext = React.createContext(defaultValue);

备注:这里的 defaultValue 是当组件上层没有匹配的 Provider 时,context 的默认值。

步骤2:使用 Provider 提供值(在组件树中用 Provider 包裹住它的子组件,子组件都能收到provider提供的值)

<MyContext.Provider value={count:1}><Child/>
</MyContext.Provider>

备注:provider 所传的值可以是任何数据类型,且当Provider 的 value 发生变化时,所有使用该 Context 的后代组件都会重新渲染

步骤3:子组件里 使用useContext 访问 provider 传的值

import React, { useContext } from 'react';function Child() {const contextValue = useContext(MyContext);return <div>{contextValue}</div>;
}

OK,整个useContext使用步骤基本完成

注意:useContext 不是可以无脑滥用,上面说到 useContext 所传的值变化,下面的所有组件都会重新渲染,这样如果嵌套曾经深、组件复杂的情况下会造成很大的性能开销

解决方案:

1、合理是使用场景:不需要频繁更新的组件使用

2、使用useMemo/useCallBack 等做性能优化

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/65312.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

黑马PM-内容项目-产品原型设计

产品设计思路原型的概念及分类原型绘制工具原型设计规范Axure制作基础交互

欧姆龙PLC数据 转 profinet IO项目案例

目录 1 案例说明 1 2 VFBOX网关工作原理 1 3 准备工作 2 4 网关采集欧姆龙PLC数据 2 5 用PROFINET IO协议转发数据 5 6 案例总结 7 1 案例说明设置网关采集欧姆龙PLC数据 把采集的数据转成profinet IO协议转发给其他系统。2 VFBOX网关工作原理 VFBOX网关是协议转换网关,是把一…

pbootcms如何修改上传格式和支持webp图片

要在PBootCMS中添加对WebP格式图片的支持,主要需要修改配置文件中的上传格式设置。以下是一个详细的步骤指南: 修改步骤打开 config.php 文件找到PBootCMS安装目录下的 /config/config.php 文件。修改上传格式配置 在 config.php 文件中找到上传配置部分,并增加 webp 格式。…

PbootCMS上传文件大小限制

要解决PBootCMS上传大文件的问题,需要从多个方面进行配置。以下是一个详细的步骤指南,包括修改php.ini文件、重启PHP服务、修改编辑器上传大小设置以及针对不同Web服务器的额外配置。 一、修改 php.ini 文件打开 php.ini 文件找到PHP安装目录下的 php.ini 文件。修改相关参数…

PbootCms内页打不开的常见情况汇总

在使用PBootCMS建站时,如果遇到内页无法正常访问的问题,通常与伪静态配置有关。以下是一些常见问题及解决方法,包括关闭伪静态和重新配置伪静态的方法。 常见问题点击任何链接都跳转到首页 内页访问报错解决方案 方案一:关闭伪静态进入后台管理界面登录PBootCMS后台管理系统…

好用免费的截屏工具Snipaste

Snipaste Downloads 直接在官网下载免费版的 2、如果快捷键,使用不了,重新设置下快捷键(本来我这里是F1的,我重新按下F1,变成静音就可以了)

阿里云虚拟主机的PbootCMS网站为什么不显示后台登录验证码(pbootcms后台登陆不显示验证码的原因和解决方法)

在使用PBootCMS时,如果遇到后台登录验证码不显示的问题,通常与服务器配置或PHP设置有关。以下是具体原因分析和解决方法: 原因分析输出缓冲区未开启PHP的输出缓冲区(Output Buffering)未开启,导致某些动态内容(如验证码图片)无法正常输出。权限问题文件或目录权限设置不…

八大核心能力铸就销售精英:解锁成功销售的密钥

成功销售,既是精妙绝伦的艺术展现,也是融汇多元技能的卓越实践。无论企业处于初创的萌芽阶段,还是屹立行业的巅峰之列,跨越销售高峰的征途上,销售人员所掌握的八大核心能力,如同星辰指引,不可或缺。这八大能力,如同精密齿轮,紧密咬合,共同铺设了一条通往辉煌业绩的坚…