Reactjs 反应16两个组件通信
ReactJS两个组件通信,从角度来说,我们只是使用服务最佳方式,但这里我是React16的新手。react中的两个组件可以通过以下方式通信 父组件->子组件通过道具 子级->父级通过回调 Child->Child通过使用其壁橱父组件 例如:Reactjs 反应16两个组件通信,reactjs,react-16,Reactjs,React 16,ReactJS两个组件通信,从角度来说,我们只是使用服务最佳方式,但这里我是React16的新手。react中的两个组件可以通过以下方式通信 父组件->子组件通过道具 子级->父级通过回调 Child->Child通过使用其壁橱父组件 例如: import React,{Component}来自'React'; 类父级扩展组件{ 构造函数(){ 超级() 此.state={ 姓名:“约翰·多伊” } this.changeName=this.changeName.bind(this) } 更改名
import React,{Component}来自'React';
类父级扩展组件{
构造函数(){
超级()
此.state={
姓名:“约翰·多伊”
}
this.changeName=this.changeName.bind(this)
}
更改名称(新名称){
这是我的国家({
姓名:newName
})
}
render(){
返回(
//使用道具将数据从父组件传递到子组件
//name={this.state.name}changeName={this.changeName}
)
}
}
功能儿童(道具){
返回(
子组件中的我的名字是:{props.name}
//使用回调将数据从子组件传递到父组件
//onClick={()=>props.changeName('Jeremy Smith')}
props.changeName('Jeremy Smith')}>更改名称
//单击按钮时,“Jeremy Smith”将传递给父组件并
//从其传递给子组件和第二个子组件
//通过这种方式,我们可以在两个子组件之间进行通信
)
}
第二儿童功能(道具){
在第二个子组件中返回我的名字:{props.Name}
}
另外
您还可以使用React上下文API将数据向下传递给子组件
或者使用状态管理库(如redux)创建单个共享存储并将所需数据传递给组件。react中的两个组件可以通过以下方式进行通信 父组件->子组件通过道具 子级->父级通过回调 Child->Child通过使用其壁橱父组件 例如:
import React,{Component}来自'React';
类父级扩展组件{
构造函数(){
超级()
此.state={
姓名:“约翰·多伊”
}
this.changeName=this.changeName.bind(this)
}
更改名称(新名称){
这是我的国家({
姓名:newName
})
}
render(){
返回(
//使用道具将数据从父组件传递到子组件
//name={this.state.name}changeName={this.changeName}
)
}
}
功能儿童(道具){
返回(
子组件中的我的名字是:{props.name}
//使用回调将数据从子组件传递到父组件
//onClick={()=>props.changeName('Jeremy Smith')}
props.changeName('Jeremy Smith')}>更改名称
//单击按钮时,“Jeremy Smith”将传递给父组件并
//从其传递给子组件和第二个子组件
//通过这种方式,我们可以在两个子组件之间进行通信
)
}
第二儿童功能(道具){
在第二个子组件中返回我的名字:{props.Name}
}
另外
您还可以使用React上下文API将数据向下传递给子组件
或者使用状态管理库(如redux)创建单个共享存储并将所需数据传递给组件。取决于组件在树中的相互关系:(1)向下传递道具,(2)使用上下文API(3)使用共享存储解决方案(如redux或mobxI)要共享我的登录详细信息,请访问我们的所有组件,在angular7,我们这里有最好的服务方式,哪一种是react 16中最好的方式。请帮我谢谢Advanced我们只是在使用服务-这只是其中一种方式。另一种方式是通过共同的父母沟通。这是你在React中通常使用的方式。另一种方法是通过全局状态Redux或上下文API进行通信。React只是视图层,由您自己决定。最流行的解决方案是
redux
+react redux
软件包,有很多关于这方面的教程,对于新手来说,设置和习惯有点棘手。除此之外,mobx
+mobx react
可能是第二流行的,它使用可观察的,因此可能更接近角度范例。非常感谢您澄清树中组件之间的关系:(1)传递道具,(2)使用上下文API(3)使用诸如redux或mobxI之类的共享存储解决方案想要共享我们所有组件的登录详细信息,在angular7中,我们这里有服务最佳方式,在react 16中,哪一种是最佳方式。请帮我谢谢Advanced我们只是在使用服务-这只是其中一种方式。另一种方式是通过共同的父母沟通。这是你在React中通常使用的方式。另一种方法是通过全局状态Redux或上下文API进行通信。React只是视图层,由您自己决定。最流行的解决方案是redux
+react redux
软件包,有很多关于这方面的教程,对于新手来说,设置和习惯有点棘手。另外,mobx
+mobx react
可能是第二流行的,它使用的是可观测的,所以可能更接近角度的范例。非常感谢你的澄清谢谢你这么多,谢谢你,谢谢你
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>
}