• useContext

接收一个上下文对象(React.createContext的返回值,可以理解为全局比变量)并返回该上下文的当前值。当前的上下文值由上层组件中距离当前组件最近的属性<MyContext.Provider>决定value。

当上层最近<MyContext.Provider>更新时,该 Hook 会触发重渲染,并使用最新提交给MyContext提供者的上下文value。即使祖先使用React.memo或使用组件,也会在其自身shouldComponentUpdate组件使用useContext时重新渲染。

  • 使用方法:
  1. 创建createContex。
const context = createContext(null);
  1. 使用context.Provider包裹根组件,在value中传入值。
function A () {const [count,setCount] = useState(0)return(// 指定上下文使用范围,使用provider,并传入读数据和写入据<context.Provider value={{count, setCount}}>这是A组件<B></B></context.Provider>)
}
  1. 使用useContext接受上下文(上下文可以理解为全局变量),这样子组件就可以使用value中共享的值。
function C () {const { count, setCount }= useContext(context)return(<div>这是C组件: {count}  <button onClick={() =>  { setCount( count+1 )}}>-</button></div>)
}
  • 完整试例
import React, { createContext, useContext, useReducer, useState } from 'react'// 创造一个上下文
const context = createContext(null);function A () {const [count, setCount] = useState(0)return(// 指定上下文使用范围,使用provider,并传入读数据和写入据<context.Provider value={{count, setCount}}>这是A组件<B></B></context.Provider>)
}function B () {return(<div>这是B组件<C></C></div>)
}function C () {const { count, setCount }= useContext(context)return(<div>这是C组件: {count}  <button onClick={() =>  { setCount( count+1 )}}>-</button></div>)
}

react Hook useContext()相关推荐

  1. react hook问题讲解

    React Hook 官网地址:https://react.docschina.org/docs/hooks-faq.html (1)问题分析? Hook 是什么? Hook 是一个特殊的函数,它可以 ...

  2. react dispatch_React测试的那些事(三) React Hook 测试实例

    useReducer 测试 useReducer 首先需要在组件中用 actions 和 reducers ,代码如下. Reducer import * as ACTIONS from './act ...

  3. 关于react hook视频讲解笔记

    https://react.docschina.org/docs/hooks-intro.html Hook 是能让你在函数组件中"钩入" React 特性的函数.它们名字通常都以 ...

  4. 尝鲜用 React Hook + Parcel 构建真心话大冒险简单页面

    首发于我的 Blog 阅读推荐:本人需要您有一定的 React 基础,并且想简单了解一下 Hook 的工作方式和注意点.但是并不详细介绍 React Hook,如果想有进一步的了解,可以查看官方文档. ...

  5. react hook函数

    State Hook useState():状态钩子.纯函数组件没有状态,用于为函数组件引入state状态, 并进行状态数据的读写操作 语法.参数及返回值说明:: const [xxx, setXxx ...

  6. React Hook的用法: Contex + Reducer(二)

    React Hook 简述 通过上篇文章我们知道使用 State Hook 和 Effect Hook 可以让函数组件也能够具有自己的状态和在组件的各个阶段提供钩子暴露给开发者使用(点击我查看 Sta ...

  7. React Hook

    React Hook Hook 是 React 16.8 的新增一系列封装函数,它可以让函数组件中可以使用state,跨组件通信,生命周期等React的特性 Hook的意义在于:将函数组件中的业务逻辑 ...

  8. 在React Hook里使用history.push跳转

    在React Hook里使用history.push跳转 react hook里用不了this.props.history的解决方法 首先引入 import { useHistory } from ' ...

  9. 源码解析 React Hook 构建过程

    2018 年的 React Conf 上 Dan Abramov 正式对外介绍了React Hook,这是一种让函数组件支持状态和其他 React 特性的全新方式,并被官方解读为这是下一个 5 年 R ...

  10. React Hook基本使用踩坑指南

    React因为提倡函数式编程,所以提出了Hook思想来增强函数组件的功能,以此来替代基于Class的组件.但是我们有可能从基于Class这样的实例化组件转向函数组件时思想还没有完全转过来,还是用基于实 ...

最新文章

  1. java xml dom4j 解析_在JAVA中怎么用DOM和DOM4j解析XML啊?
  2. linux 如何以树形结构显示文件目录结构
  3. 非平坦结构元matlab,基于MATLAB的巴特沃思型数字滤波器设计.doc
  4. jQuery以Post方式发送请求并获取返回的文件供下载!
  5. php 重定向到https,php - 如何从HTTPS重定向到HTTP? - SO中文参考 - www.soinside.com
  6. vue 页面切换动画_Flutter Hero动画让你的APP页面切换充满动效 不一样的体验 不一样的细节处理...
  7. [工具库]JOXMLBuilder工具类——一键把多个bean对象数据转换为XML格式数据
  8. 带孔的打印纸怎么设置_带孔电脑打印纸规格尺寸的相关知识及应用范围
  9. 李开复:未曾公布的乔布斯故事
  10. My Thirty-Second Page - 对称二叉树 - By Nicolas
  11. android横竖屏切换布局闪退,Android 横竖屏切换以及横屏启动闪退问题
  12. Java中创建对象有哪几种方式,Java 中创建对象的4种方式--Java学习网
  13. python xlrd读取文件报错_python利用xlrd读取excel文件始终报错原因
  14. python视频教程410集免费_Python Web开发—进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程...
  15. 互联网创业的未来挖掘思路分享
  16. Ka波段卫星通信终端市场现状及未来发展趋势
  17. 嵌入式系统与通用计算机系统的区别,嵌入式操作系统和通用计算机系统的区别是什么...
  18. JAVA多线程技术-IO密集型与CPU密集型
  19. 用python开发一个炸金花小游戏,注意别玩上瘾了~~(附完整源码)
  20. B. Marvolo Gaunt’s Ring (递推)

热门文章

  1. java实现三方登陆:微信登陆功能的实现
  2. echarts 随时间推移得刻度线_抖音超火❤罗盘时钟(免费附源码)
  3. can滤波 dsp_CAN dsp 28335 CAN通信使用例程,已测试,可以正常 ,欢迎交流学习 DSP program 267万源代码下载- www.pudn.com...
  4. 五步帮你实现用户画像的数据加工
  5. 将计算机设置成交换机主机名,交换机配置基本使用命令解析
  6. 浏览器LocalStorage和SharedWorker跨标签页通信-连载2
  7. yar php使用,PHP yar的使用简介
  8. macos 系统固件 路径_iTunes下载的固件在哪里?iTunes固件文件路径详解
  9. 横版过关2d游戏c语言代码,如何制作一个横版格斗过关游戏(2) Cocos2d-x 2.0.4
  10. 转载:欧姆社 漫画学习统计学