React16 两个组件通信
React16 Two components communicating
ReactJS 两个组件通信,在angular中,我们只是使用服务的最佳方式,但我是 React 16 的新手。
react中的两个组件可以通过以下方式进行通信
父级 -> 子级组件 通过 props
子级 -> 父级 通过回调
Child -> Child 通过使用他们的壁橱父组件
例如:
import React, {Component} from 'react';
class Parent extends Component {
constructor() {
super()
this.state = {
name: "John Doe"
}
this.changeName = this.changeName.bind(this)
}
changeName(newName) {
this.setState({
name: newName
})
}
render() {
return (
<div>
// passing data from parent component to child component using props
// name={this.state.name} changeName={this.changeName}
<Child name={this.state.name} changeName={this.changeName} />
<SecondChild name={this.state.name} />
</div>
)
}
}
function Child(props) {
return (
<div>
<h1>My name in Child Component is: {props.name} </h1>
// passing data from child component to parent component using Callback
// onClick={() => props.changeName('Jeremy Smith')}
<button onClick={() => props.changeName('Jeremy Smith')}>Change Name</button>
// when button is clicked "Jeremy Smith" is passed to parent component and
// from their passed to both Child and SecondChild components
// this way we communicate between two child components
</div>
)
}
function SecondChild(props) {
return <h1>My Name in Second Child Component is: {props.name}</h1>
}
另外
您还可以使用 React Context API 将数据向下传递给子组件。
或者使用像 redux 这样的状态管理库来创建单个共享存储并将所需的数据传递给组件。
ReactJS 两个组件通信,在angular中,我们只是使用服务的最佳方式,但我是 React 16 的新手。
react中的两个组件可以通过以下方式进行通信
父级 -> 子级组件 通过 props
子级 -> 父级 通过回调
Child -> Child 通过使用他们的壁橱父组件
例如:
import React, {Component} from 'react';
class Parent extends Component {
constructor() {
super()
this.state = {
name: "John Doe"
}
this.changeName = this.changeName.bind(this)
}
changeName(newName) {
this.setState({
name: newName
})
}
render() {
return (
<div>
// passing data from parent component to child component using props
// name={this.state.name} changeName={this.changeName}
<Child name={this.state.name} changeName={this.changeName} />
<SecondChild name={this.state.name} />
</div>
)
}
}
function Child(props) {
return (
<div>
<h1>My name in Child Component is: {props.name} </h1>
// passing data from child component to parent component using Callback
// onClick={() => props.changeName('Jeremy Smith')}
<button onClick={() => props.changeName('Jeremy Smith')}>Change Name</button>
// when button is clicked "Jeremy Smith" is passed to parent component and
// from their passed to both Child and SecondChild components
// this way we communicate between two child components
</div>
)
}
function SecondChild(props) {
return <h1>My Name in Second Child Component is: {props.name}</h1>
}
另外
您还可以使用 React Context API 将数据向下传递给子组件。
或者使用像 redux 这样的状态管理库来创建单个共享存储并将所需的数据传递给组件。