刚加入一个项目,第一次在 React Native 中实现 RTK Query。这似乎是该团队的其他成员第一次使用 RTK 查询。目前的设置方式,他们经常使用类似
const [someFunctionality] = useSomeFunctionalityMutation();
return async (someParams) => {
const response = await someFunctionality(someParams)
if ('data' in response) { dispatch(successAction) }
else if ('error' in response) {
dispatch(errorAction);
setSomeState(error);
}
}
我的职业生涯还很早,只在之前的一个项目中使用过 RTK Query。在我们想要因突变而产生副作用的情况下,我们会选择一些像
const [someFunctionality] = useSomeFunctionalityMutation();
someFunctionality(someParams)
.unwrap()
.then(() => dispatch(successAction))
.catch((error) => {
dispatch(errorAction);
setSomeState(error);
}
虽然我们从来没有把它写成一个可重用的函数。
第一种方法似乎没有问题,但我想知道:
一种方法优于另一种方法吗?为什么?第一种方法是否会导致在基本测试中没有注意到的问题?由于此功能对团队中的许多人来说都是新功能,因此我想确保我们正在建立良好的标准。感谢您的帮助!
简而言之,在这种特定情况下,由于代码上的信息,second 方法更受青睐和推荐。
RTK Querry 是 Redux Toolkit 的一个插件,专为数据查询而构建。
RTK Query 是一个强大的数据获取和缓存工具。它旨在简化在 Web 应用程序中加载数据的常见情况,无需您自己手写数据获取和缓存逻辑。
RTK Query 是 Redux Toolkit 包中包含的可选插件,其功能构建在 Redux Toolkit 中的其他 API 之上。
对于更多
详细,RTK查询有两个主要的查询数据的功能
这是 RTK 查询最常见的用例。可以使用您选择的任何数据获取库执行查询操作,但一般建议您只对检索数据的请求使用查询。对于任何改变服务器上的数据或可能使缓存无效的东西,你应该使用 Mutation。
突变用于向服务器发送数据更新并将更改应用到本地缓存。突变还可以使缓存数据无效并强制重新获取。
简而言之,Query 用于检索数据,Mutation 用于其他目的,即变异数据。
这意味着,在上面的代码中,第一个用例应该使用 Query 而不是 Mutation。
此外,RTK Query 是一个插件,因此它也与 RTK 协作。即:使用 extraReducer
.处理 RTK Query 查询状态
有很多支持抓取,在选项卡查看所有功能使用RTK查询 在this,所以值得迁移到。