美文网首页
React Context

React Context

作者: 中石化局长 | 来源:发表于2019-06-20 17:07 被阅读0次

redux原理跟其类似,redux的provider就是用context实现的

使用:

//先定义一个context
const ThemeContext = React.createContext({
  background: 'red',
  color: 'white'
});
...
//在爷爷组件里包裹一个父组件设置provider,如果不设置,就会使用默认的"red"
<ThemeContext.Provider value={{background: 'green', color: 'white'}}>
      <Toolbar />
</ThemeContext.Provider>
...
//父组件,有多少都行
function Toolbar(props) {
    return (
        <div>
            <ThemedButton />
        </div>
    );
}
...

老API的写法

class ThemedButton extends React.Component {
//要使用的孙组件里定义contextType
  static contextType = ThemeContext;
//然后this.context就可以直接使用了
  render() {
      return <Button style={{ 'background':this.context }} />;
  }
}

或者在孙组件中(新API写法)

class ThemedButton extends React.Component {
  render () {
    return (
      <ThemeContext.Consumer>
        {context => (
          <h1 style={{background: context.background, color: context.color}}>
            {this.props.children}
          </h1>
        )}
      </ThemeContext.Consumer>
    );
  }
}

相关文章

  • 2018-08-08

    React 高级指南 React 新版上下文(context) context ?答:上下文(Context) 提...

  • React中不常用的功能——Context

    React中不常用的功能——Context Context React源码版本16.8 基本用法 跨层级通信 Co...

  • 疑问汇总

    1. react context是怎样实现 跨组件通信的? 从Context源码实现谈React性能优化[http...

  • react context

    react context React.createContext, Provider(数据提供者), Consu...

  • React 拾遗之 Context

    React 拾遗之 Context React.js 的 context 其实像就是组件树上某颗子树的全局变量 使...

  • react-redux源码解读

    "react-redux": "^5.0.6" redux和react之间的桥梁是react的context,re...

  • React-深入探究Context(1)

    前言 React组件中的Context与Android中的Context类似,都可以理解为上下文。而React中的...

  • react 笔记

    react 基本概念解析 react 的组件声明周期 react 高阶组件,context, redux 等高级...

  • React context

    Contexts 是React的一个重要属性,但是到目前为止,这个属性在正式的文档里面还没有对它进行正式介绍,在 ...

  • 【React】Context

    介绍 Contexts 是React的一个重要属性,但是到目前为止,这个属性在正式的文档里面还没有对它进行正式介绍...

网友评论

      本文标题:React Context

      本文链接:https://www.haomeiwen.com/subject/xdmjqctx.html