SuperAPI AI 工具集

router-core/search-params

写作与研究

查看项目

更新于 10-16 00:00

技能介绍

用途:在 TanStack Router 中管理 URL 搜索参数,将其作为 JSON 优先的应用状态,自动解析为结构化对象,并在每条路由上用 validateSearch 校验。

主要能力:支持 Zod、Valibot、ArkType 适配器;提供 fallback() 处理默认值;支持 retainSearchParams、stripSearchParams 等搜索中间件并可链式组合;支持通过 parseSearchWith / stringifySearchWith 自定义序列化;父路由搜索参数自动合并到子路由;loader 可通过 loaderDeps 只选取需要的参数。

用法:读取参数可在路由组件用 Route.useSearch(),代码分割组件用 getRouteApi(),任意组件用 useSearch({ from }),宽松访问用 useSearch({ strict: false })。写入参数用 Link 的函数形式保留现有参数,对象形式会替换全部参数;也可用 useNavigate() 编程式导航。使用 Zod v3 时应从 @tanstack/zod-adapter 引入 fallback(),不要用 .catch(),否则输出类型会变成 unknown;Zod v4 则改用 .catch(),不使用 zodValidator()。

限制与常见错误:不要为 useSearch() 的返回值添加类型标注,类型会完全推断;loaderDeps 不要返回整个 search 对象,否则任意参数变化都会重跑 loader;搜索参数中不要传 Date 对象,应转为 ISO 字符串;父路由缺少 validateSearch 会阻断子路由继承;用对象形式写 search 会丢失已有参数。