用途:在 TanStack Query 中通过 select 订阅组件真正需要的数据形状,同时让完整响应保留在缓存中,实现细粒度订阅与派生状态。
主要能力与用法:使用 useSuspenseQuery 配合 select,例如将 product 数据选择为 product.title。对开销大的选择器要稳定其函数标识:把选择器移到组件外部,或在闭包依赖组件 props 时用 React.useCallback 包裹。当服务端数据变化时,派生值会在渲染期间自然更新,因此应优先在渲染中从服务端状态派生客户端状态,而不是用副作用同步。示例:const selectedUser = usersQuery.data?.find((user) => user.id === selectedUserId),再据其是否存在计算可见的 id。
常见错误与限制:不要用 useEffect 同步派生状态;不要把开销大的转换写成内联选择器,否则无关渲染会重跑,因为 TanStack Query 会在数据变化或选择器函数标识变化时重新执行 select;不要用 select 抛领域错误——select 只转换成功数据,查询错误应放在 queryFn 中抛出。资料未提供安装命令、版本、平台或收费信息。