React中context的使用方法

react

App.js文件

// 引入React

import React, {Component} from 'react';

// 引入样式

import './App.css';

/*

* 详细说明:定义了三个组件:分别为App/AppChild/AppChildChild

* 组件关系:App -> AppChild 父子; App -> AppChildChild 祖;AppChild -> AppChildChild 父子;

* 通过下面案例你将领略context的使用方法

* 使用方法总结:

* 1.先创建一个Context容器对象,可以进行结构Provider及Consumer方便之后的简单应用。

* 2.包裹要用的组件,给谁用就在谁的外面包裹,使用属性关键字value进行传值,value不可改变。

* 3.在哪里使用就在哪里声明,static contextType = 容器对象名字;

* 4.使用this.content获取

* 注意上述方法只限于类式组件,如果你使用的是函数式组件,那么你应该用下面的方式去做

* <Consumer>

* {

* value => {

*

* }

* }

* </Consumer>

***/

// 创建一个Context容器对象,注意开头大写

const MyContext = React.createContext()

// 拿出Provider及Consumer

const {Provider, Consumer} = MyContext;

// 定义一个祖组件

class App extends Component {

state = {

username: 'Tom',

age: 20

}

render() {

const {username, age} = this.state;

return (

<div className="App">

<h3>我是App组件</h3>

<h4>我的名字:{username}</h4>

{/*利用props给子组件AppChild传值*/}

{/*给谁用就用Provider包裹*/}

{/*<Provider value={username}>

<AppChild username={username}/>

</Provider>*/}

<Provider value={{username, age}}>

<AppChild username={username}/>

</Provider>

</div>

);

}

}

// 父级组件

class AppChild extends Component {

render() {

const {username} = this.props;

return (

<div className="AppChild">

<h3>我是AppChild组件</h3>

<h4>我接收来自App组件的名字是:{username}</h4>

<AppChildChild/>

</div>

);

}

}

// 子组件-类式生命

/*class AppChildChild extends Component {

// 声明context

static contextType = MyContext;

render() {

const {username, age} = this.context;

return (

<div className="AppChildChild">

<h3>我是AppChildChild组件</h3>

<h4>我接收来自App组件的名字是:{username},年龄:{age}</h4>

</div>

);

}

}*/

// 子组件-函数式声明

function AppChildChild() {

return (

<div className="AppChildChild">

<h3>我是AppChildChild组件</h3>

<h4>

<Consumer>

{

value => {

return `我接收来自App组件的名字是:${value.username},年龄:${value.age}`

}

}

</Consumer>

</h4>

</div>

)

}

export default App;

App.css文件

.App {

background-color: blue;

font-size: 20px;

padding: 10px;

color: #ffffff;

}

.AppChild {

background-color: orange;

font-size: 20px;

padding: 10px;

color: #ffffff;

}

.AppChildChild {

background-color: red;

font-size: 20px;

padding: 10px;

color: #ffffff;

}

以上是 React中context的使用方法 的全部内容, 来源链接: utcz.com/z/384354.html

回到顶部