javascript – 在reactjs中没有父子关系的不同组件之间进行通信
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 在reactjs中没有父子关系的不同组件之间进行通信,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1561字,纯文字阅读大概需要3分钟。
内容图文
假设我有2个不同的DOM元素
<div id="firstDiv">
</div>
<div id="secondDiv">
</div>
现在让我说我在firstDiv中使用渲染一些html
React.render(firstComponent(null),document.getElementById('firstDiv');
现在假设我从firstComponent中的服务器获取一些数据,然后我在secondDiv中渲染部分数据,最好的方法是什么?我可以调用React.renderComponent(,document.getElementById(“secondDiv”) )从第一个组件内部?以及如何实现它们之间的双向通信???让我们说现在我点击在secondDiv中呈现的html中的链接然后如何更改firstDiv内的文本?
如果我概括这个问题,它将是“如何在一个组件中的多个DOM元素中呈现html,然后通过在不同DOM元素中呈现的这些组件进行通信?”
解决方法:
这可以通过常规parent-child communication来实现,除非在这种情况下您没有任何父级.
但是你仍然可以将一些函数传递给根组件,这些函数将在2个组件中调用并触发渲染
这是你问的例子的工作演示:
var First = React.createClass({
render: function() {
return <div>Hello1 {this.props.name}</div>;
}
});
var Second = React.createClass({
render: function() {
return <div onClick={this.props.onSecondClicked}>Hello2 {this.props.name}</div>;
}
});
function onSecondClicked() {
React.render(<First name="World updated!" />, document.getElementById("first"));
}
React.render(<First name="World" />, document.getElementById("first"));
React.render(<Second name="World" onSecondClicked={onSecondClicked}/>, document.getElementById("second"));
在第二个组件内部调用React.render通常应该可以工作(可能不是在渲染阶段期间,但这不是一个好主意).但是它会在两个组件之间产生巨大的耦合.
您还可以创建一个“根组件”,它将是2个组件的父组件.
如果要同步许多组件,可以使用事件总线进行跨组件通信.
内容总结
以上是互联网集市为您收集整理的javascript – 在reactjs中没有父子关系的不同组件之间进行通信全部内容,希望文章能够帮你解决javascript – 在reactjs中没有父子关系的不同组件之间进行通信所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。