组件模式
本页介绍如何在 React 组件中有效使用 Redux 和 RTK Query,包括 hooks、优化模式和最佳实践。
基础查询用法
使用 RTK Query 端点生成的 hooks:
import { useGetParcelByCoordsQuery } from '@/features/land/land.client';
function ParcelCard({ x, y }: { x: number; y: number }) {
const { data, isLoading, isError, error } = useGetParcelByCoordsQuery({ x, y });
if (isLoading) return <div>加载中...</div>;
if (isError) return <div>错误:{error.toString()}</div>;
if (!data) return null;
return (
<div>
<h2>{data.name || `地块 ${x},${y}`}</h2>
<p>所有者:{data.owner}</p>
</div>
);
}使用以下方式优化重新渲染: selectFromResult
将结果缩小到仅包含你需要的字段:
使用以下条件查询: skip
当参数还未准备好时跳过查询:
轮询获取实时更新
延迟查询
改为手动触发查询,而不是在组件挂载时触发:
Mutation 用法
基础 Mutation
带反馈的 Mutation
使用 slice 状态
使用以下方式访问 slice 状态: useAppSelector:
组合多个查询
使用选择器派生状态
分发动作
实体适配器选择器
数据预取
在导航前预取数据,以获得更快的用户体验:
手动缓存管理
处理查询状态
表单集成
最佳实践
1. 使用带类型的 Hooks
2. 处理所有查询状态
3. 用于 .unwrap() Mutation
4. 使用以下方式缩小结果范围: selectFromResult
5. 避免选择整个 slice
下一步
最后更新于