React中context的使用方法
App.js文件
// 引入Reactimport 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