温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

react组件间的通信方法有哪些

发布时间:2022-02-24 17:01:39 来源:亿速云 阅读:129 作者:iii 栏目:开发技术

这篇文章主要介绍了react组件间的通信方法有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇react组件间的通信方法有哪些文章都会有所收获,下面我们一起来看看吧。

1.Props

Props方法这是目前为止最常用的方式,他被用于在组件之间传递信息,而且我们在使用 props方法的时候还可以把数据从父组件传递到它的子组件中;而且 Props 是 React 的核心功能,也是 React 的基础知识。

2.实例方法

我们通过在父组件中拥有 refs 从而来引用子组件,之后就可以实现调用子组件的实例方法了。也就是我们说的另一种从父组件访问子组件的方式;代码如下:

class Thechild extends React.component {
myFunc(){
return “he11o";}
}}
class TheParent extends React.Component {
render(){
return(
<Thechi1d
ref-{foo-> {
this.foo =foo;
}}/>);}
componentDidMount( f
var x= this.foo.myFunc();
}}

3.回调函数

我们通过方法一和方法二知道怎么把数据从我们的父组件传给我们的子组件,然而在我们的父组件中可以把一个属性传给子组件如下代码:

<MyChild myFunc={this.handlechildFunc}/>

然后我们在通过子组件调用这个函数,代码如下:

this.props.myFunc();

最后我们还需要在子组件中声明这个函数,代码如下:

MyChiid.propTypes ={
myFunc: React.PropTypes.func};

这样我们就完成了回调函数的使用了。

4.事件冒泡

事件冒泡这个方法并不是 React 的概念,而是浏览器中 DOM 的事件机制,冒泡事件的方法和回调函数类似;它也可以把数据从子组件发送到父组件。而且当我们想在父组件中捕获来自子组件中的 DOM 事件时,就可以采用这个方法了。代码如下:

class Childcomponent extends React.component {
render( ){
return(
<div>This is child component</div>);
}}
class Parentcomponent extends React.component {
handleclick(evt) {
console.log(evt.target);}
render(){
return(
<div onclick = {this.handleclick } >
<childcomponent/>
</div>
);}}

在这串代码中,我们可以通过点击子组件中的 div 元素之后,我们可以在浏览器的控制台可以看到输出了这个 div 元素,这是因为我们在父组件中定义的事件监听器成功监听到了来自子组件冒泡上来的 click 事件。

5.父组件

当我们在使用的过程中如果需要让两个组件之间相互通讯的话,那么它们肯定会拥有共同的父级组件,而且我们可以使用上述的策略组合,而且我们只是需要使用父级组件作为沟通的媒介,把数据作为父组件的 state 和方法来定义就可以了。代码如下:

class Parentcomponent extends React.component{ 
render(){
return(
<div>
< SiblingA
 myProp = {this.state.propA}
myFunc = {this.siblingAFunc}/>
< SiblingB
myProp = { this.state.propB}
myFunc = {this.siblingBFunc}/>
</div>);
}}

6.观察者模式

观察者模式这个方法是一种软件设计模式,而且是拥有一个对象可以在需要时发送数据到多个其他对象的功能;不仅如此这种方式适用于所有组件,不需要时父子组件或者平级组件;在我们平常中的做法是将在 componentDidMount()中的订阅事件,通过在 componentWillUnmount() 里取消订阅,然后当我们在接收事件时调用 setState() 方法就可以实现了。而且现在网络 上也有很多库可以实现观察者模式,比如:PubSubJS,EventEmitter等等这些方法。

7.全局变量

对于这个方法我们一般来说是不怎么使用这个方法的,因为当我们在使用全局变量这个方法时需要注意的细节会比较多所以建议不熟练的小伙伴不要使用比较好,但是它还很实用,还可以帮我们节省大量时间;小编在这里建议大家在使用全局变量这个方法的时候要用 window. 语法来明确定义,这样还可以方便我们以后的管理维护。

8.Context

Context 这个方法和我们得第一种方法 props 类似,但是这个方法它不是和props方法一样是单个子组件传递数据,它是可以为整个子树提供数据的;而且Context 只可以在树中向下传递数据(父组件到子树)。而且还可以配合回调函数来向上传递数据(子树到父组件)。

关于“react组件间的通信方法有哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“react组件间的通信方法有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI