让我们说点击UI中的按钮,我想要更改存储在redux中的4个应用程序状态。
编写四个动作创建者并调用四次调度或编写一个动作创建单个动作对象并发送一次是不是很好?相应的减速器将监听此单个动作并相应地改变状态。
如果其中一个操作需要从服务器获取数据,该怎么办?
请注意,订单对我来说并不重要。但原子性是。
答案 0 :(得分:1)
在可重用性和性能之间存在折衷。
4个操作:您的用户界面将刷新4次,但您将来可以独立重复使用这些操作。根据您设计组件的程度,刷新UI 4次可能不是问题。
1动作:您的UI只会刷新一次,因为您将对redux状态进行一次批量更新。如果不需要独立调用每个子操作,请使用此选项。
混合:您可以随时使用两种解决方案的混合,并创建一个操作,一次更新4个部分,并单独执行操作以更新各个部分。
一般情况下,如果我进行非常轻微的更新(例如打开或关闭弹出窗口/面板),我会使用4动作解决方案,如果我需要在其他地方执行大量请求(在初始应用程序中),我会执行一次大批量更新初始化例如)。
另外,请确保在mapStateToProps
中只选择实际需要的信息,以避免不必要的组件更新。