我来自一个Angular2世界,那里有服务可以正常加载数据等等,现在我在React,Redux应用程序上,并试图找出Redux中的Angular2服务的等价物(React) 。是Redux-thunk吗?
答案 0 :(得分:3)
答案是是和否。
是强>
Angular服务具有加载数据的逻辑,通常返回一个Promise
对象,该对象通过加载数据得到解析。
使用Redux Thunk中间件,您可以创建异步动作创建器,您可以在其中放置数据加载的逻辑。但是不是直接返回Promise
对象,而是等待数据解析并调度操作以更新加载数据的状态。 React组件通过props从Redux商店接收数据。 (请参阅react-redux
中的connect()
方法。)
否强>
$http
,用于促进与远程HTTP服务器的通信。话虽如此,通常是编码风格的问题,在何处以及如何编写加载数据的逻辑。
您可以使用基于Promise
的{{3}}或其Fetch API
功能或polyfill库。您也可以考虑使用Observables
,但我认为这超出了主题范围。
与Angular服务一样,您可以将所有相关逻辑放在一个位置并导出它们。在您的动作创建者中,您可以调用这些包装器/帮助程序,监听解析/拒绝并使用已解析为有效负载的数据调度相应的操作。
您的Reducer在收到调度的操作后更新Redux存储,并将这些状态更改传播到React组件。这是 Flux架构如何工作和数据如何从Redux Store流向React组件,AFAIK。
(我可能错了,如果有任何不正确的地方请纠正我,我对你的意见持开放态度。我仍然在寻找在React应用程序中实现服务的最佳实践。)