gpt4 book ai didi

javascript - Angular 2 中的 Redux 与服务

转载 作者:可可西里 更新时间:2023-11-01 01:43:58 26 4
gpt4 key购买 nike

我想确保我正确理解了 Redux。我的理解是它将存储应用程序(包括所有子系统)的完整状态,例如所有组件的模型以及获取数据和用户生成数据的缓存。这是否意味着我不应该使用服务通过模型的 ID 加载/保存组件的状态?

我正在制作一个测验应用程序,它由测验类别问题选择等组件组成>。目前,每个组件都调用 Web API 来获取数据并维护自己的状态,或者借助于通过 id 字段跟踪所有内容的服务。

我有一个名为 AnswerService 的专用服务来维护所选选项的状态,其中每个 Choice 组件在呈现时获取它的状态。

迁移到 Redux 是否意味着所有这些都将移动到存储,并且几乎所有服务都将是无状态的并直接分派(dispatch)到存储,并且所有组件模型分别从存储订阅?

最佳答案

"Does migrating to Redux means all of this will be moved to store"

没有。
如果您正在使用 ngrx,那么处理此问题的最佳方法是使用 ngrx/effects。这是一个配套库,旨在成为“放置异步代码的地方”,或者换句话说,就是产生副作用的地方。因此,当组件需要一些新数据时,它会分派(dispatch)一个“GET_DATA”操作,这将作为 ngrx @Effect 处理。在效果内部,您可以使用自定义服务调用和检索数据(因此您的异步服务可能很好,可能只需要稍微调整一下)。然后你将一个包含新数据的 Action 返回给reducer,reducer用新数据更新状态。您的组件一直在订阅存储,因此当 reducer 更新状态时,组件知道此更改并可以自动更新它自己的本地状态。

关于javascript - Angular 2 中的 Redux 与服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37767195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com