Redux Toolkit:数据获取的首选方法是什么?
Redux Toolkit: What is the Preferred Method for Data Fetching?
我目前正在使用 React(带钩子)和 Redux-Toolkit。通读文档后,我遇到了 Redux Thunks、createAsyncThunk 和 RTK Query。在这三种方法中,哪种方法最适合在 Redux 切片中获取数据,在切片中修改该数据,然后将所述数据分派给 React?
提前感谢您的回答!
它们每个都有自己的用途,只有 RTK-Q 是专门为数据获取和缓存而设计的。
“问题”是
- 默认情况下并未真正与应用程序商店的 Redux 和 Thunks 集成 - 它“存在于”自己的商店中,具有自己的缓存状态、操作和中间件。
我们的想法是,您不想将获取的数据放入 app-store,当然,它只会复制数据并添加另一个具有以下不一致性的“真实来源”。
RKT-Q 增加了“API状态”的概念,表示后端的数据,处理方式与App(前端)的状态明显不同。
在额外的情况下,你可以处理 RTK-Q 相关的操作,在你的中间件中处理它们(在你的情况下是 Thunks)并更新你的 Redux app-state 产生一些计算的操作 data\flags,等等
- 未涵盖申请<->API协商的所有情况。
例如 - file\data 导出、API action
调用,以及其他不属于 RESTfull 架构的内容。如果您尝试通过 RTK-Q 从 API 下载文件,您会发现这种情况有多糟糕,您将被迫通过 Thunks\Sagas 使用单独的流程 or\with 简单 fetch
API 这样做。
但是,RTK-Q 仍然为您带来了很多开箱即用的功能,因此默认情况下使用它来获取数据是值得的,即使需要处理一些边缘情况。
总结 - 我相信您的问题没有 right\complete 答案,只是您自己的应用架构设计需要考虑更多的事情。
我目前正在使用 React(带钩子)和 Redux-Toolkit。通读文档后,我遇到了 Redux Thunks、createAsyncThunk 和 RTK Query。在这三种方法中,哪种方法最适合在 Redux 切片中获取数据,在切片中修改该数据,然后将所述数据分派给 React?
提前感谢您的回答!
它们每个都有自己的用途,只有 RTK-Q 是专门为数据获取和缓存而设计的。
“问题”是
- 默认情况下并未真正与应用程序商店的 Redux 和 Thunks 集成 - 它“存在于”自己的商店中,具有自己的缓存状态、操作和中间件。
我们的想法是,您不想将获取的数据放入 app-store,当然,它只会复制数据并添加另一个具有以下不一致性的“真实来源”。
RKT-Q 增加了“API状态”的概念,表示后端的数据,处理方式与App(前端)的状态明显不同。
在额外的情况下,你可以处理 RTK-Q 相关的操作,在你的中间件中处理它们(在你的情况下是 Thunks)并更新你的 Redux app-state 产生一些计算的操作 data\flags,等等
- 未涵盖申请<->API协商的所有情况。
例如 - file\data 导出、API action
调用,以及其他不属于 RESTfull 架构的内容。如果您尝试通过 RTK-Q 从 API 下载文件,您会发现这种情况有多糟糕,您将被迫通过 Thunks\Sagas 使用单独的流程 or\with 简单 fetch
API 这样做。
但是,RTK-Q 仍然为您带来了很多开箱即用的功能,因此默认情况下使用它来获取数据是值得的,即使需要处理一些边缘情况。
总结 - 我相信您的问题没有 right\complete 答案,只是您自己的应用架构设计需要考虑更多的事情。