我已经研究过使用redux-thunk中间件在Redux中使用API。我理解从Redux调用API的流程,我理解如何构造我的状态片段以反映API调用的状态,即获取,成功或失败。我现在想知道的是:如何构建一个非常大的应用程序来避免样板代码?从我收集的文档中,单个API调用需要:
API_CALL_FETCHING
行动和API_CALL_SUCCESS
行动或API_CALL_FAIL
行动假设我有一个允许对其进行基本CRUD操作的资源,天真地意味着我应该编写12个不同的操作(每次调用4次crud操作* 3个API状态操作)。现在想象一下,我有许多资源允许CRUD操作,并且这开始变得庞大。
是否有任何雄辩的方法来压缩进行许多API调用所需的代码?或者有一个大型应用程序只需要在这个领域重复多次?
谢谢!
答案 0 :(得分:1)
是。有许多方法可以抽象出API调用的过程,以及许多现有的库来帮助解决这个问题。
一般来说,您可以编写“工厂函数”,其中包含一些参数集(API端点,数据描述等),并返回一组操作,缩减器和其他逻辑,以实际进行API调用和处理数据
有关现有示例,请参阅Action/Reducer Generators#Network Requests的Entity/Collection Management和Redux addons catalog部分。在Redux之上还有一些更有意的抽象层,如redux-tiles和Kea。