react_hooks系列06_useContext

news/2024/7/15 18:27:30 标签: react.js, javascript, 前端

Context状态树的使用,比较复杂,特别是使用Consumer时。

useContext这个hook能让Context使用起来变得非常简单。不需要再使用Consumer。使用useContext就能拿到context状态树里的值。

javascript">const value = useContext(context对象);

useContext函数的解释:

参数: context 对象(React.createContext 的返回值)

返回值: context对象的当前值(由上层组件中距离当前组件最近的 的 value prop 决定)

当组件上层最近的 Provider 更新时,该 Hook 会触发重新渲染 。

示例:

javascript">//context/index.js 创建context对象。

import {createContext} from "react";

export default createContext({count:0});

//主入口文件 index.js

import ReactDOM from 'react-dom';
import App from './App';
import Context from "./context"

let count = 10;

ReactDOM.render(
    <Context.Provider value={count}>
     <App/>
    </Context.Provider>,
  document.getElementById('root')
);


//孙子组件 App-->User-->UserAdd.js

import myContext from "../../../context";
import {useContext} from "react";

export default (props)=>{
    let context = useContext(myContext);
    console.log(context);
    return (
        <div>
            <h1>我是用户添加页面</h1>
            <p>count:{context}</p> //此处使用比起consumer是不是简单的多得多得多了呢?
            <p></p>
        </div>
    );
}


http://www.niftyadmin.cn/n/1009917.html

相关文章

Node.js模块化加载机制

优先从缓存中加载 模块在第一次加载后会被缓存。这也意味着多次调用 require() 不会导致模块的代码被执行多次 注意:不论是内置模块、用户自定义模块、还是第三方模块&#xff0c;它们都会优先从缓存中加载&#xff0c;从而提高模块的加载效率 $就像下方图中测试 内置模块…

java List集合使用笔记

1、List集合的特点 有序集合、有序的序列&#xff0c;用户可以精准的控制元素插入的位置通过索引访问元素可以搜索元素与Set不同&#xff0c;List允许重复的元素存在 2、List集合特有的方法 add(索引,元素) remove(索引)&#xff1a;返回的是被删除的索引 get(索引)&#xf…

WPF webview2 demo

link:WPF 应用中的 WebView2 入门 - Microsoft Edge Development | Microsoft Learn code: <Windowxmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://sc…

springboot集成mybatis-plus无法扫描到mapper.xml,因为xml文件没有在resources文件下,无法被扫描到所以需要修改配置

Property mapperLocations was not specified or no matching resources found 修改yml文件 mybatis-plus:mapper-locations: classpath*:**/mapper/xml*/*.xml* #配置正确的文件路径configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplglobal-config:bann…

vue+element-ui实现带提示的锚点图标按钮

vueelement-ui实现带提示的锚点图标按钮 文章目录 vueelement-ui实现带提示的锚点图标按钮案例情景开发环境实现方案 案例情景 在一个有顶部导航栏的网站首页&#xff0c;上下分成好几个不同内容的展示区&#xff0c;要求能通过侧边的锚点按钮快速定位&#xff0c;并且锚点按钮…

【游戏逆向】探索可靠的线程检查方法

一、关键的线程检查 在对抗外挂和木马的方案中&#xff0c;不可能将所有的检查操作放在主线程中&#xff0c;因此&#xff0c;在方案中总有一个扫描线程或者环境检查线程必须保持工作&#xff0c;而它们也就成了外挂和木马的重要攻击目标&#xff0c;外挂和木马只要搞定了它们…

office 2003 default regedit

office版本这么多&#xff0c;感觉还是2003简单&#xff0c;唉 "D:\Microsoft-Office-2003\OFFICE11\EXCEL.EXE" /regserver "D:\Microsoft-Office-2003\OFFICE11\WINPROJ.EXE" /regserver "D:\Microsoft-Office-2003\OFFICE11\POWERPNT.exe" /r…

CentOS 9 x64 使用 Nginx、Supervisor 部署 Go/Golang 服务

前言 在 CentOS 9 x64 系统上&#xff0c;可以通过以下步骤来部署 Golang 服务。 1. 安装必要的软件包 安装以下软件包&#xff1a; Golang&#xff1a;Golang 编程语言Nginx&#xff1a;Web 服务器Supervisor&#xff1a;进程管理工具Git&#xff1a;版本控制工具EPEL&…