美文网首页
React context

React context

作者: 三元一只十元三只 | 来源:发表于2020-04-03 08:30 被阅读0次

react 父组件传递数据给到子组件,一般是通过props,子组件也通过props传递给孙子组件,一层层自上而下传递。当面对层级比较多的时候,每一层都需要接收上一层传递的props,然后传递给下一层。这就很繁琐了。react context就是解决这一问题的。

react context会在全局创建一个共享值,谁需要用到该值就自己去取,不用组件树逐层传递。使用context要想好是否有必要,因为context会导致组件的复用性变低。具体的使用方法是:

1、使用 React.createContext创建一个context,该方法接收一个初始化值。

const ThemeContext = React.creatContext("light")

2、在父组件中定义一个值,传递给孙子组件。通过上面创建的context名加".provider"使用:

Class App extends React.Component{

        render() {

            return (

                <ThemeContext.provider value="dark">

                    //中间组件名

                    <Toolbar />

                </ThemeContext.provider>

            )

       }

_

3、定义中间组件,此时中间组件不需要再承担传递props的职责了。

function Toolbar() {

        return (

            <div>

                <ThemeButton />

            </div>

        )

}

4、定义孙子组件,该组件需要使用到父组件传递过来的值。

class Themebutton extends React.Component {

        //定义contextType 为第一步创建的ThemeContext React会自动开始找provider的值并开始使用它         static contextType = ThemeContext;

        render () {

            return <button theme= { this.context } />;

        }

}

相关文章

  • 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/kmscphtx.html