反应组件交互和全局状态变化
React component interaction and global state changes
我对React很陌生,只是在尝试它。我想知道一些常见的模式,或者是处理组件之间通信的内置库。例如,我有一个输入组件和一个根据输入控制器中的内容从服务器更新的"列表"组件。想象一个自动完成框。既然组件有表示逻辑,那么如果两者不能是"除"呢?它们位于页面的不同部分,因此有两个不同的控制器。
另外,如果我有一个通过Ajax工作的登录/注销按钮,该怎么办?我想象页面上的许多不同组件对登录/注销操作做出反应,根据全局"已登录"状态和从服务器检索到的已登录特定用户的数据重新配置自己。
React对这些变化做出"反应"的最佳方式是什么?感谢
您应该签出Flux和Dispatcher。这有点像酒吧/酒吧系统,但没有酒吧/酒吧的问题。优点是所有事件都朝一个方向流动,这使得体系结构更加简单和可扩展。
如果你还没有,你应该查看Facebook的官方React文档。他们有一个非常全面的教程,涵盖了您将遇到的90%的场景,包括组件交互的最佳实践。他们也非常擅长在没有知识的基础上进行建设。只需大约20分钟即可完成:https://facebook.github.io/react/tutorial/tutorial.html
正如另一个答案中所提到的,Redux是一个令人惊叹的库,用于处理应用程序状态,并将不应该相互了解的组件分开。基本上,您可以有父组件和子组件,但如果您有一个组件有超过2个级别的子组件,您应该考虑使用Redux(或Flux)来处理不相关组件之间的状态。redux解决的问题只是打破这些依赖关系,并仍然允许组件拥有单一的真相来源。他们的官方文件也非常好:http://redux.js.org/
- 全局变量和全局对象的属性之间有什么区别吗
- 正在全局范围中查找JavaScript函数
- 事件和状态
- delete关键字在全局变量上的不同行为
- 从数组中删除元素,然后保留其状态以备将来使用,而不使用全局变量
- 网络状态的全局侦听器
- 反应组件交互和全局状态变化
- 使用 ajaxError 全局处理程序显示 HTTP 状态代码 401 详细信息
- 使用离子框架改变全局函数的状态
- 在 javascript 中创建一个全局库,同时保存状态和行为
- jQuery插件如何维护全局状态
- 客户端应用程序的全局可变状态
- Angular 2路由器全局状态更改事件
- Javascript存储/全局数据/对象的状态
- 如何将全局状态数据处理到Redux中的深度嵌套组件中
- 在MVC中存储全局状态变量的位置以及如何传递它
- 全局变量 在所有相位器状态下未更新
- Javascript全局变量在下次事件调用时返回到之前的状态
- Javascript 全局变量绑定的状态 在函数内
- lambda函数的简单全局状态