Angular 如何实现Redux?

Angular 如何实现Redux?,angular,redux,ngrx,ngrx-store,ngrx-effects,Angular,Redux,Ngrx,Ngrx Store,Ngrx Effects,即使要处理的数据没有在不同组件之间共享,我是否应该对所有API调用使用Redux? 示例:用户列表组件必须检索用户列表并将其显示在界面中。这些用户不在此组件之外使用。API调用是否必须使用操作/还原器/效果来实现?如果数据和逻辑都是自包含的,则无需使用redux模式,因为它只会引入不必要的复杂性 当然,这取决于你的目标。如果你想试试,那不是你的选择。如果你计划你的应用程序将增长——这不是个坏主意。实际上,如果您将使用“按功能模块”结构,您可以在将来轻松地将ngrx添加到您的项目中 Redux是关

即使要处理的数据没有在不同组件之间共享,我是否应该对所有API调用使用Redux?
示例:用户列表组件必须检索用户列表并将其显示在界面中。这些用户不在此组件之外使用。API调用是否必须使用操作/还原器/效果来实现?

如果数据和逻辑都是自包含的,则无需使用redux模式,因为它只会引入不必要的复杂性


当然,这取决于你的目标。如果你想试试,那不是你的选择。如果你计划你的应用程序将增长——这不是个坏主意。实际上,如果您将使用“按功能模块”结构,您可以在将来轻松地将ngrx添加到您的项目中

Redux是关于状态管理的。也许你现在觉得这太过分了。但一定要确保你的应用程序会增长。你会得到更多的模块,处理一切都会变得更加困难

此外,redux还为应用程序添加了一些结构。我相信,如果新成员加入团队,如果团队使用redux,新成员将很容易完成项目。即使他们是年轻人,也让他们阅读redux/ngrx,这样他们就可以轻松跟踪应用程序中的数据流。事实上,即使react-dev来到angular团队,这也是事实,反之亦然。至少对我来说:我和我的同事可以轻松地讨论问题并成功地解决它们,但我使用Angular,他使用React


您是否应该遵循API调用的redux过程?好从技术上讲,你可以忽略这一点。但是为什么呢?关于Redux,有很多有用的工具。例如,redux开发工具。如果您使用动作进行api调用,那么您也可以在Redux开发工具中看到它们。您可以查看操作列表、操作负载(您从服务器收到的)、此操作如何改变您的状态。

首先,什么是Redux?

Redux是JavaScript应用程序的应用程序状态管理器 通过具有 应用程序中的单向数据流。Redux应用程序 只有一个全局只读应用程序状态。这个状态是计算出来的 通过“减少”集合或操作流,在 控制方式

角度上的重排?

Redux州的经理们受到了很好的欢迎并受到了启发 创建@ngrx,这是一组模块,以相同的方式实现 管理状态以及中的一些中间件和工具 Redux生态系统@ngrx专门用于 Angular和RxJS,因为它严重依赖于可观察范式。 您在上面看到的两个组件都使用ngrx存储进行管理 (更新至v4)升级的优势现在我们支持lazy 使用特色模块直接在ngrx中加载

在哪里使用它?

一个小的场景将使它的用途非常清楚

我希望你可能正确使用了facebook:p所以如果你看@facebook的 您将在网站上看到多个组件,如导航栏、左面板、, 聊天室等是否曾想过何时会有新消息发送给大家 这些是如何同时更新的?如果他们去看电影或电影 他们将被淹没在意大利面条代码的海洋中。 即使实现了,也很难调试或进行更改

这里来使用ngrx状态管理所有信息 存储在一个地方,所有组件在 数据的状态已更改。从堆栈溢出看这个答案 将清晰的概念更加形象清晰

如何实施Redux?

有两种选择,一种是
ng redux
,另一种是
ngrx
。我个人喜欢ngrx,它有着广阔的社区和伟大的想法

您可以在@this中查看计数器应用程序并将列表添加到Ngrx v4

如果您想查看使用整个ngrx套件实现的整个应用程序,请查看该应用程序的部署位置


对这一点的引用来自于我在那里传播的角度概念。

完全同意@Meeker的观点。如果您打算在将来扩展Redux,您可能会将其视为项目的替代方案。如果你只是创建一个单一组件的应用程序,我也建议不要使用Redux。是的,这很清楚。但我的问题是:在Redux项目中,所有API调用都必须遵循actions/Reducer/effects过程,即使对于组件之间未共享的数据也是如此。我在帖子里举了个例子。谢谢。不,他们没有。事实上,如果您希望组件是可共享的、可重用的、易于维护的,如果数据和逻辑都是自包含的,那么这种做法是不好的。是的,现在是。您的应用程序会增长吗?如果是,那么一段时间后,你的应用程序可能会陷入混乱。如果没有,也没有尝试redux的目标,那么不使用它是可以的。我只是对给出的评论和答案提供最好的回应。如果你生气了,我向你道歉。谢谢。对于Redux项目,我的所有API调用都必须遵循Redux过程吗?为什么不呢?Redux是关于状态管理的。从服务器检索的数据、事件是应用程序状态的一部分。那么,你为什么要忽视这些利润呢?你会有日志,你会有清晰的数据,因为redux。我有很多API调用,在很多情况下,它只是用于构建单个组件,而数据不会与其他组件共享。用redux做这一切都很难。为什么你认为这很难?你需要一些动作、减速器、效果和选择器。我不确定这是否真的很难。您需要选择您想要的:)将这个额外组件的状态存储在单独的减速器中并没有问题。完全没关系。如果您想要单向数据流和可预测的状态管理,您可以选择redux。请查看示例应用程序以了解其工作原理