为了账号安全,请及时绑定邮箱和手机立即绑定

Redux:为什么我们需要采取行动?

Redux:为什么我们需要采取行动?

摇曳的蔷薇 2023-07-29 15:09:52
我正在与 NgRx 合作来实现 Redux。我正在尝试理解 redux 模式。为什么我们需要调度一个动作?为什么我们不能userReducer直接从下面的服务代码调用该函数并传递正确的操作?谢谢!服务代码: this.store.dispatch(new userActions.SetName({"bob"})用户.action.ts:    readonly type = UserActionTypes.SET_NAME    constructor(public payload: string) { }    }用户.reducer.ts:export function userReducer(   state: UserState = BEGINNING_STATE   action: UserActions)switch(action.type) {case UserActionTypes.SET_NAME:   return {      ...state,      Name: state.Name   }}
查看完整描述

1 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

您将“指示发生了某些事情”(操作)与“如果发生 X 则执行此操作”(减速器/中间件)分开。如果您直单击时会以特定方式更改状态。这种分离在大型复杂应用中具有许多优点。

Facebook 有一个大型应用程序,世界上多个地点的多人都在其中工作(Facebook 聊天),并且在这个应用程序中,有多个组件应该表明发生了某些事情,但实际上会直接更改状态或导致破坏其他人代码的副作用。所以他们想出了一个模式来解决这个问题。开发人员现在可以创建仅指示发生了某些事情的组件,以便其他开发人员可以编写在某些事情发生时需要执行的代码。

redux devtools 保存操作和结果状态,因此调试可以变得更容易。如果某些功能不起作用,您应该做的第一件事是检查开发工具,看看是否调度了正确的操作以及它们是否正确更改了状态。

使用操作和化简器写入状态只是一部分,您应该使用选择器以可组合和可重用的方式读取状态。


查看完整回答
反对 回复 2023-07-29
  • 1 回答
  • 0 关注
  • 56 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信