【发布时间】:2018-12-28 12:04:37
【问题描述】:
我正在尝试了解使用 API 中的数据更新/刷新 Redux 状态时的最佳做法。
想想这个场景:
您有一个待办事项应用程序,其中许多用户可能会在任何给定时间点更新与您相同的待办事项。显然,您希望您的本地 Redux 存储最终反映其他用户的这些更改。
你愿意:
- 获取路线更改时更新的待办事项集?
- 当/如果用户更改待办事项或与之交互时,获取该待办事项的更新版本?
- 两者都有?
- 从不 - 一旦获取状态,您就将状态保存在存储中,它会成为该会话的真实来源(显然不理想)
- 还有别的吗?
我现在对向客户端推送更改或轮询 API 不感兴趣(啊!)。我只是想就大多数开发人员何时刷新存储在 Redux 状态中的 API 派生数据达成某种共识。
【问题讨论】:
-
试一试:如果您没有更改路线或与应用程序交互,那么应用程序商店应该更新。根据我的理想时间是应用程序的开始。当您的第一个组件要渲染时。在获取时,我们不应该取消订阅,就像在 firebase 的情况下一样,只要数据发生一些变化,它就应该更新存储。
-
甚至不是一开始。无论您在哪里获取数据,都不要取消订阅
-
但是如果我没有向客户端推送数据(根据问题),那么就没有机会订阅/取消订阅。我只是调用 fetch() 来获取数据。我在应用程序首次加载时执行此操作(对于某些应用程序范围的特定数据,例如帐户详细信息/用户/等),然后当用户单击“to dos”路由时获取“to dos”。目前,当用户返回“to dos”路线时,我会重新获取数据。
-
订阅与获取数据不推送有关。当您在当前组件上时,您可以使用订阅以连续方式获取数据,当您离开组件时,您取消订阅它。但是当您重新访问该页面时,您必须再次获取数据以便获得更新。所以我认为重新获取不是额外的工作。
-
您只需要在用户转到“to dos”路线时添加订阅
标签: javascript reactjs api redux frontend