hn-failte's blog hn-failte's blog
首页
  • 前端文章

    • JavaScript
    • Vue
    • React
    • Webpack
    • 混合开发
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《React》笔记
    • 《TypeScript 从零实现 axios》
    • 《Git》学习笔记
    • TypeScript笔记
    • JS设计模式总结笔记
  • HTML&CSS
  • HTML
  • CSS
  • CSS预处理
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 算法
  • 数据库
  • 操作系统
  • 工具
  • 学习
  • 面试
  • 心情杂货
  • 前端相关
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

hn-failte

前端cv仔
首页
  • 前端文章

    • JavaScript
    • Vue
    • React
    • Webpack
    • 混合开发
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《React》笔记
    • 《TypeScript 从零实现 axios》
    • 《Git》学习笔记
    • TypeScript笔记
    • JS设计模式总结笔记
  • HTML&CSS
  • HTML
  • CSS
  • CSS预处理
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 算法
  • 数据库
  • 操作系统
  • 工具
  • 学习
  • 面试
  • 心情杂货
  • 前端相关
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Webpack

  • React

    • React中context的用法
      • 作用
      • 使用
    • React中Hooks的使用
    • React之immutable的使用
    • React性能优化
    • Redux的使用
    • 为什么项目不使用Redux
    • React配置Webpack开发环境
    • 谈谈Vue/React中的虚拟DOM(VDOM)与Key值
  • JavaScript

  • Vue

  • 混合开发

  • 学习笔记

  • 微信小程序

  • 前端
  • React
hn-failte
2019-03-25

React中context的用法

# React Context的用法

# 作用

一般用于组件传值

# 使用

1、创建GlobalContext.js

import { createContext } from "react"

export const { Provider, Consumer } = createContext()
1
2
3

2、用Provider把包裹需要实现传值的组件,需要传的值放在value属性上

例如:包裹整个React APP

main.js

import React from "react"
import ReactDom from "react-dom"
import App from "./App"

import { Provider } from "./GlobalContext"

ReactDom.render(
    <Provider value={{name: "zs", age: 18}}><App /></Provider>,
    document.getElementById("app")
)
1
2
3
4
5
6
7
8
9
10

3、在需要接收值的组件中使用Consumer进行包裹

Consumer内部是一个函数

Consumer.js

import React, { Component } from "react"
import { Consumer } from "GlobalContext"

export default class MyClass extends Component{
    render(){
        return(
            <Consumer>
            {
                (obj)=>(
                    <div>
                        <p>name:{obj.name}</p>
                        <p>age:{obj.age}</p>
                    </div>
                )
            }
            </Consumer>
        )
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
编辑 (opens new window)
#Context
上次更新: 2021/08/05, 12:37:41
eslint从愁眉苦脸到为所欲为
React中Hooks的使用

← eslint从愁眉苦脸到为所欲为 React中Hooks的使用→

最近更新
01
基于 Taro 的微信小程序优化指南
02-16
02
搭建一个极简混合开发架构
08-03
03
使用State Hook
04-06
更多文章>
Theme by Vdoing | Copyright © 2017-2023 hn-failte | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式