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

React 状态管理 - Context API 前世今生(下)

New Context API

Provider【context的生产者组件】

  • createContext 创建一个Context对象,订阅了整个Context对象的组件,会从组件树中离自身最近的那个匹配的Provider中读取到当前的context值。
  • Context.Provider 父Context对象返回的Provider组件,允许消费组件订阅context的变化。

Consumer【context的消费者组件】

  • Class.contextType 申明了contextType属性的组件会被赋值一个Context对象,组件内的this.context可以访问最近Context上的值。
  • Context.Consumer 函数组件订阅Context对象的方式,如同contextType之于Class组件。

New Context API-实战

import React, { Component } from 'react';
import CustomContext from './components/button-context';
import NewButton from './components/new-button';export default class NewContext extends Component {constructor(props) {super(props);this.state = {color: '#28a745',        };            }render() {const { color } = this.state;// Provider【context的生产者组件】return (<CustomContext.Provider value={color}><NewButton>new context api</NewButton></CustomContext>                            );    }
}
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import CustomContext from '../button-context';export default class NewButton extends Component {// 【context的消费者组件】static contextType = CustomContext;static propTypes ={children: PropTypes.string,    }static defaultProps = {children: '默认文案',   }render() {const { children } = this.props;return (<button type="button" style={{color: this.context }}>{children}</button>        );   }
}
import React from 'react';const CustomContext = React.createContext();export default CustomContext;

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

相关文章:

  • 地下城堡3魂之诗阵容搭配攻略
  • 网工内推 | 技术支持工程师,厂商公司,HCIA即可,有带薪年假
  • 有 AI,无障碍,AIoT 设备为视障人群提供便利
  • 数据结构学习笔记——数据结构概论
  • 关于 打开虚拟机出现“...由VMware产品创建,但该产品与此版VMwareWorkstateion不兼容,因此无法使用” 的解决方法
  • windows的最佳选项卡式窗口管理器软件TidyTabs
  • 【Python 千题 —— 基础篇】浮点数转为整数
  • 【Linux--进程间通信】
  • Linux C文件操作
  • 基于Cucumber的行为驱动开发(BDD)实例
  • 十六、代码校验(2)
  • 安卓 kotlin-supportFragmentManager报红
  • linux中安装RocketMQ以及dashboard
  • Android kotlin内联函数(inline)的详解与原理
  • 林沛满---一个面试建议
  • CMake教程-第 5 步:安装和测试
  • 移动应用-Android开发基础\核心知识点
  • Java读取并转换字符串中的浮点数
  • SQL: 索引原理与创建索引的规范
  • 基于STM32_DS18B20单总线传感器驱动
  • 目标识别项目实战:基于Yolov7-LPRNet的动态车牌目标识别算法模型(三)
  • springboot线程池创建与使用
  • UDP和TCP特点(部分)对比:
  • PostMan环境变量、全局变量、动态参数使用
  • 服务器数据恢复-服务器硬盘指示灯黄灯闪烁的数据恢复案例
  • ts 分发
  • SQL中的group by使用注意事项
  • 矩阵剪辑系统源码----pc/手机端双开发
  • 0基础学习VR全景平台篇 第106篇:认识调色软件Lightroom
  • React如何优化减少组件间的重新Render