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

[React] Context上下文的使用

文章目录

      • 1.Context的介绍
      • 2.为什么需要Context
      • 3.Context的使用

1.Context的介绍

  1. Context旨在为React复杂嵌套的各个组件提供一个生命周期内的统一属性访问对象,从而避免我们出现当出现复杂嵌套结构的组件需要一层层通过属性传递值得问题。

  2. Context是为了提供一个组件树形结构内的一个数据共享的容器。

2.为什么需要Context

在这里插入图片描述

在这里插入图片描述

使用Context方式进行数据的共享,各个树状组件均可通过统一的Consumer统一访问全局的Consumer共享数据。

3.Context的使用

Context的使用主要分为创建、插入、访问三个流程,通过创建context对象提供共享组件,将Provider指定嵌套至需要使用共享数据的顶层结构,然后各后代组件通过context访问共享数据(变量、常量、方法等)。

AppContext.js

import React from "react";// 初始值为参数
export const MyContext = React.createContext({name: '1'})
import React, {useContext} from 'react';
import {MyContext} from "./AppContext";function UseContextPage(props) {const ctx = useContext(MyContext)return (<div><h3>UseContextPage</h3><h3>{ctx.name}</h3></div>);
}export default UseContextPage;

Provider/Consumer

import React, {useContext} from "react";
export const Context = React.createContext()
const DemoContext = ()=> {const value = useContext(Context)/* my name is alien */return <div> my name is { value.age }</div>
}/* 用Context.Consumer 方式 */
const DemoContext1 = ()=>{return <Context.Consumer>{/*  my name is alien  */}{ (value)=> <div> my name is { value.name }</div> }</Context.Consumer>
}// 提供者
export default function UseContext(){return <div><Context.Provider value={{ name:'alien', age: 11}} ><DemoContext /><DemoContext1 /></Context.Provider></div>
}
http://www.lryc.cn/news/177889.html

相关文章:

  • 高云FPGA系列教程(9):cmd-parser串口命令解析器移植
  • PHP8的静态变量和方法-PHP8知识详解
  • 用AI写文章被百家号封禁
  • JVM--Java类加载器笔记
  • 【在Ubuntu部署Docker项目】— PROJECT#1
  • 【学习笔记】LOJ #6240. 仙人掌
  • java通过接口转发文件(上传下载)
  • Docker-部署docker-compose以及管理服务
  • Android - Monkey 测试应用出现Crash报错IllegalStateException
  • Spring源码分析 事务 实现原理
  • ADS-B及雷达显示终端8.3
  • 第二章:最新版零基础学习 PYTHON 教程(第二节 - Python 输入/输出–从 Python 控制台获取输入)
  • linux安装配置 flume
  • SSM - Springboot - MyBatis-Plus 全栈体系(十五)
  • win10默认浏览器改不了怎么办,解决方法详解
  • C语言连接MySQL并执行SQL语句(hello world)
  • react实现动态递增展示数字特效
  • 读取.nrrd和.dcm文件格式医学图片可视化与预处理
  • VS CODE中的筛选器如何打开?
  • vue 多环境文件配置(开发,测试,生产)
  • 在服务器上搭建pulseaudio的运行环境,指定其运行目录、状态目录和模块目录
  • [Qt]QListView 重绘实例之一:背景重绘
  • 国庆周《Linux学习第二课》
  • 6年前的麒麟980依旧可以再战
  • JS计算任意多边形的面积
  • ios xcode15 navigationController?.navigationBar.isHidden = false无效
  • Python二级 每周练习题20
  • 深度学习-一个简单的深度学习推导
  • ES写入数据报错:retrying failed action with response code: 429
  • Redis给Lua脚本的调用