reactjs – 为什么要使用redux-thunk或redux-saga来获取?
我一直在读,我应该使用redux-thunk或redux-saga来处理副作用.
为什么不简单地使用这样的动作创建者来发送多个动作: function loadProductActionCreator(dispatch) { dispatch({ type: 'load_product',}) fetch('api/product').then( function (r) { return r.json(); } ) .then(function (res) { dispatch({ type: 'loaded_product',data: res }) }) } 我试过了,它起作用了(complete code).所以我想一定有一些我不知道的不便之处. 解决方法
你的代码类似于thunk的代码.
根据redux docs,行动应该是纯粹的.并且它们应始终为相同的输入参数返回相同的值.通过使用fetch,您允许操作返回非特定值,而不是返回服务器的值,这意味着操作响应可能会随时间而变化. 这被称为副作用.并且这是默认情况下不应该在redux操作中的内容. 但为什么? 是的,你可以像你一样在里面输入它,在小应用程序中它并不重要. 在更大的应用程序中,使用redux-saga有好处: >动作是可预测的,它们只返回有效载荷 { type: 'FETCH_POSTS',params: { category: 'programming' } } >然后构建中间件,该中间件将对执行实际API请求所需的所有数据执行操作 可能的优点: >清洁代码库(但可能是较小应用程序的开销) 从个人经验来看,在一个项目(更大的代码库)上我们已经开始使用redux-thunk,但后来我们需要集成更高级的功能,比如节流,以及操作之间的一些依赖关系.因此我们将所有内容重写为redux-saga并且它对我们来说效果很好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |