react之context
context是什么
Props属性是由上到下单向传递的
context提供了在组件中共享此类值的方法
context使用
设计目的是共享哪些对于组件来说全局的数据
不要因为仅仅为了避免在几个层级下的组件传递props而使用context
context用法
1.先创建一个theme-context.js
import React from 'react' const ThemeContext = React.createContext() export default ThemeContext
2.在组件app.js里面引用
import React, { Component } from 'react';
import './App.css';
import ThemeContext from './theme-context'
import ThemeBar from './components/ThemeBar'
const themes = {
light: {
className: 'btn btn-prime',
bgColor: '#f00',
color: '#fff'
},
dark: {
className: 'btn btn-dark',
bgColor: '#ff0',
color: '#000'
}
}
class App extends Component {
render() {
return (
<ThemeContext.Provider value={themes.light}>
<div>
<ThemeBar/>
</div>
</ThemeContext.Provider>
);
}
}
export default App;
3.创建ThemeBar组件
import React from 'react'
import ThemeContext from '../theme-context' const ThemeBar = () => {
return (
<ThemeContext.Consumer>
{
theme => {
console.log(theme)
}
}
</ThemeContext.Consumer>
)
} export default ThemeBar
在组件里面打印传递下来的theme就可以在控制台看见传递下来的数据了
react之context的更多相关文章
- 手写一个React-Redux,玩转React的Context API
上一篇文章我们手写了一个Redux,但是单纯的Redux只是一个状态机,是没有UI呈现的,所以一般我们使用的时候都会配合一个UI库,比如在React中使用Redux就会用到React-Redux这个库 ...
- React Hooks & Context API
React Hooks & Context API responsive website https://reactjs.org/docs/hooks-reference.html https ...
- 【react】---context的基本使用新版---【巷子】
一.全局定义context对象 globalContext.js import React from "react"; const GlobalContext = React.cr ...
- 【react】---context的基本使用---【巷子】
一.context的理解 很多优秀的React组件都通过Context来完成自己的功能,比如react-redux的<Provider />,就是通过Context提供一个全局态的stor ...
- React 新 Context API 在前端状态管理的实践
本文转载至:今日头条技术博客 众所周知,React的单向数据流模式导致状态只能一级一级的由父组件传递到子组件,在大中型应用中较为繁琐不好管理,通常我们需要使用Redux来帮助我们进行管理,然而随着Re ...
- React 中 context 的使用
官方文档说明(英) 看了别人写的中文博客,再看了官方英文文档,发现还是官方文档讲的浅显易懂一些,看了之后,半翻译半理解地写了这篇博客,更易于新手理解. 介绍 context 是在 react @ 0. ...
- 简单整理React的Context API
之前做项目时经常会遇到某个组件需要传递方法或者数据到其内部的某个子组件,中间跨越了甚至三四层组件,必须层层传递,一不小心哪层组件忘记传递下去了就不行.然而我们的项目其实并没有那么复杂,所以也没有使用r ...
- React的Context的使用方法简介
context 定义: Context提供了一种方式,能够让数据在组件树中传递,而不必一级一级手动传递. API : createContext(defaultValue?). 使用方法: 首先要引入 ...
- React手稿 - Context
Context Context提供了除props之外的传参数的方式. Context是全局跨组件传递数据的. API React.createContext ``` const {Provider, ...
随机推荐
- Android H5混合开发(4):构建Cordova Jar包
前言 上一节,介绍了原生项目如何嵌入Cordova,我们对Cordova的依赖使用的是CordovaLib Module,这也是安卓项目常用的方式. 但是,也有项目希望以Jar包的方式依赖Cordov ...
- JavaScript数据在内存中储存方式
详情来源于个本人博客: https://shengchangwei.github.io/al-data/ > Js的数据类型包括两种: 基本数据类型:String.Boolean.Number. ...
- window10系统下,彻底删除卸载mysql
本文介绍,在Windows10系统下,如何彻底删除卸载MySQL...1>停止MySQL服务开始->所有应用->Windows管理工具->服务,将MySQL服务停止.2> ...
- 《Effective Java》 读书笔记(三) 使用私有构造方法或枚举实现单例类
1.单例类到现在为止算是比较熟悉的一种设计模式了,最开始写单例模式是在C#里面,想要自己实现一个单例类,代码如下: public class Instance { private static rea ...
- 学习笔记26_MVC前台强类型参数
*一般在MVC中,aspx后台要往前台传递参数,使用ViewData["Key"] = obj; 前台就要 <%=(ViewData["key"] as ...
- vps配置脚本备个份
#!/bin/bash apt-get update -y apt-get dist-upgrade -y apt-get install -y nmap vim build-essential gc ...
- AtCoder Grand Contest 036D - Negative Cycle
神仙题?反正我是完全想不到哇QAQ 这场AGC真的很难咧\(\times 10086\) \(\bf Description\) 一张 \(n\) 个点的图,\(i\) 到 \(i+1\) 有连边. ...
- [考试反思]0818NOIP模拟测试25:清心
两机房分开考试.拿到了令人orz的A卷. 15本校+3外校=18人参加 排名第7,没前途.大不了去第二机房... skyh也很强了.tdcp拿来一个诡异的. 86,85,79.然后是我垃圾的.在后面差 ...
- PCA降维的原理、方法、以及python实现。
PCA(主成分分析法) 1. PCA(最大化方差定义或者最小化投影误差定义)是一种无监督算法,也就是我们不需要标签也能对数据做降维,这就使得其应用范围更加广泛了.那么PCA的核心思想是什么呢? 例如D ...
- <深圳千锋学习>day01
2019.11.11 深圳千锋H5前端学习笔记