I am using React and Redux (react starter kit).
I have a set of action, and when some are called, I want to dispatch side effects.
For exemple, I have a workspace that contains projects, if workspaceID in the store change, (using my action setWorkspaceId) then, the projects store will notice the change, and start execute some api call to update itself.
在 angular/ngrx 中,我使用的是效果,因此在调用某个动作时调度其他动作的效果。
什么是 redux 方式?我正在检查 Redux-Saga,但是还有其他东西或已经内置了吗?
单独留下,Redux 只是从它通过 接收到的动作累积状态dispatch,所以没有单一的 Redux 祝福方式来触发动作的副作用。
但它支持中间件,它允许您监视、订阅甚至更改分派的操作。
如果您通过 ngrx 熟悉 RxJS,redux-observable可能值得研究。它允许你通过 RxJS 的 observable 类型消费和发出动作。您描述的在值更改时触发 API 调用的用例非常适合于此。
但正如您所说,还有redux-saga,它使用生成器围绕 Redux 操作和其他副作用的消费和生产建模异步逻辑。这些以及所有其他解决方案都有利有弊。
最后,我建议从你最熟悉的开始,特别是如果你是 Redux 的新手。
一条不请自来的建议 - 中间件很容易被过度使用。警惕在中间件中做的事情和可以在减速器中实现的副作用。
设置中间件来响应动作 A 来分派动作 B 很容易也很诱人,但是如果所有动作 B 所做的都是更新某个状态,那么该状态的减速器可能只对动作 A 做出反应。换句话说,去掉中间件。
| 归档时间: |
|
| 查看次数: |
4489 次 |
| 最近记录: |