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更新时,组件知道此更改,并可以自动更新自己的本地状态.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...