微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JavaScript – Redus vs Angular 2中的服务

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

我正在做一个测验应用程序,包括测验,类别,问题和选择等组件.目前,每个组件调用Web API来获取数据,并维护它自己的状态本身,或借助于跟踪id字段的所有内容的服务.

我有专门的服务叫做AnswerService来维护所选择的选项的状态,每个选择组件在渲染时都会获取它的状态.

迁移到Redux意味着所有这些都将被移动到存储,几乎所有的服务将是无状态的并且直接发送到存储,并且所有组件模型分别从商店订阅

解决方法

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

没有.如果你使用ngrx,那么处理这个的最好方法是使用ngrx / effects.这是一个伴随的图书馆,其意图是“放置您的异步代码的地方”,或换句话说,这个地方做副作用.所以当组件想要一些新的数据时,它将调度一个“GET_DATA”操作,这将被处理为一个ngrx @Effect.在您的效果之内,您可以使用自定义服务调出并检索数据(因此您的异步服务可能很好,可能只需要调整一点).然后,效果会将包含新数据的操作返回给使用新数据更新状态的reducer.您的组件正在订阅存储整个时间,所以当状态由reducer更新时,组件知道此更改,并可以自动更新自己的本地状态.

原文地址:https://www.jb51.cc/js/153323.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐