三个月来,我一直在学习React Redux。真的,Redux是个好主意。当我回顾redux时,我认为redux似乎是一个全局变量,定义为STORE。因此,在React Redux应用程序上,每个组件、每个自定义钩子和其他组件都可以访问全局变量STORE来获取和设置。
通过这种想法,我相信我可以减少Ajax调用次数。例如,假设有两个页面,如用户页面和房间页面。用户页面将显示用户列表,房间页面将显示每个房间中的用户列表。
用户页面(一个ajax调用(
- #1.获取用户列表
房间页面(两个ajax调用(
- #1正在获取用户列表
- #2获取带有房间用户关系信息的房间列表
以前,每当加载页面(componentDidMount(时,我都会让用户页面和房间页面调用ajax来获取数据。但我只想用Redux调用ajax一次。因此,只有在第一次加载页面时,ajax调用才会起作用我认为使用Redux是可能的,因为Redux商店是作为一个全局变量工作的。
但我对这个想法有意见。问题是数据同步。
假设有两个管理员用户(admin#1,admin#2(可以编辑服务器数据。
现在,我使用Admin#1登录,并访问了用户页面和房间页面。因此,用户数据和房间数据将保存在Redux Store上。之后,ajax调用就不再需要用户和房间数据了。
但此时,管理员#2添加/删除了一些用户。
在这种情况下,管理员#1如何获取同步数据?
我认为websocket似乎是一个很好的解决方案。但是websocket功能对于整个web应用程序来说是非常困难的。
那么,对于我的问题,最好的解决方案是什么呢?
我想你可以试试socketio。当客户端删除/添加新用户时,它将向其他客户端(webapp(广播一个事件。您只需要实现一个静态socketIO客户端并导出所有重要的函数(也可以考虑回调(,就可以在组件中导入和使用它们