关于 nuqs
面向使用 nuqs 管理类型安全 URL 查询状态的开发者参考技能,适用于 React 及相关框架。39 条分级规则涵盖解析器、设置、服务端集成、性能与调试。
主要功能
- 01涵盖八类的 39 条规则
- 02类型化解析器与 URL 参数模式
- 03框架设置与适配器指导
- 04服务端组件集成
- 05URL 更新性能与历史记录控制
- 06调试与测试指导
适用场景
- 01为应用添加 URL 状态
- 02在框架项目中配置 nuqs
- 03跨库共享解析器
- 04排查查询状态行为
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill nuqs安装后在 Claude Code 中输入/nuqs确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
AGENTS.mdmetadata.jsonREADME.mdassets/templates/_template.mdreferences/_sections.mdadvanced-custom-parsers.mdadvanced-eq-function.mdadvanced-framework-adapters.mdadvanced-process-url-search-params.mdadvanced-url-keys.mddebug-enable-logging.mddebug-testing.mdhistory-push-navigation.mdhistory-scroll-behavior.mdparser-array-format.mdparser-date-format.mdparser-enum-validation.mdparser-index-offset.mdparser-json-validation.mdparser-use-typed-parsers.mdparser-with-default.mdperf-avoid-rerender.mdperf-clear-on-default.mdperf-debounce-search.mdperf-key-isolation.mdperf-serialize-utility.mdperf-throttle-updates.mdserver-next15-async.mdserver-parse-before-get.mdserver-search-params-cache.md详细介绍
Next.js 和 React 的 nuqs 社区最佳实践
全面介绍如何使用 nuqs 在 Next.js、React Router、TanStack Router、Remix 和纯 React 中进行类型安全的 URL 查询状态管理。涵盖 nuqs v2.5–v2.9 的功能。包含 8 个类别中的 39 条规则,并按影响排序,为代码生成、重构和代码审查提供指导。
适用场景
在以下情况下参考这些指南:
- 使用 nuqs 实现基于 URL 的状态
- 在 Next.js 或 React Router 项目中设置 nuqs
- 配置 URL 参数解析器
- 将 URL 状态与服务器组件集成
- 优化 URL 更新性能(
limitUrlUpdates、键隔离) - 通过 Standard Schema 与 tRPC / TanStack Router / 表单共享解析器定义
- 调试 nuqs 相关问题
规则类别与优先级
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 解析器配置 | CRITICAL | parser- |
| 2 | 适配器与设置 | CRITICAL | setup- |
| 3 | 状态管理 | HIGH | state- |
| 4 | 服务器端集成 | HIGH | server- |
| 5 | 性能优化 | MEDIUM | perf- |
| 6 | 历史记录与导航 | MEDIUM | history- |
| 7 | 调试与测试 | LOW-MEDIUM | debug- |
| 8 | 高级模式 | LOW | advanced- |
快速参考
1. 解析器配置(CRITICAL)
parser-use-typed-parsers— 为非字符串值使用类型化解析器parser-with-default— 使用 withDefault 设置非空状态parser-enum-validation— 为受限值使用枚举解析器parser-array-format— 选择正确的数组解析器格式parser-json-validation— 验证 JSON 解析器输入parser-date-format— 选择合适的日期解析器parser-index-offset— 使用 parseAsIndex 在 URL 中显示从 1 开始的索引
2. 适配器与设置(CRITICAL)
setup-nuqs-adapter— 使用 NuqsAdapter 包装应用setup-use-client— 为钩子添加 'use client' 指令setup-import-server— 从 nuqs/server 导入服务器端实用工具setup-nextjs-version— 确保 Next.js 版本兼容setup-shared-parsers— 在专用文件中定义共享解析器setup-default-options— 在 NuqsAdapter 上配置应用级默认选项(v2.5+)
3. 状态管理(HIGH)
state-use-query-states— 对相关参数使用 useQueryStatesstate-clear-with-null— 使用 null 清除 URL 参数state-avoid-derived— 避免根据 URL 参数派生状态state-options-inheritance— 使用 withOptions 进行解析器级配置state-setter-return— 使用 setter 返回值访问 URLstate-standard-schema— 使用 Standard Schema 进行跨库验证(v2.5+)
4. 服务端集成(HIGH)
server-search-params-cache— 在服务端组件中使用 createSearchParamsCache(或 createLoader)server-shallow-false— 使用 shallow:false 触发服务端重新渲染server-use-transition— 集成 useTransition 以实现加载状态server-parse-before-get— 在服务端组件中先调用 parse(),再调用 get()server-next15-async— 处理 Next.js 15+ 中的异步 searchParams
5. 性能优化(MEDIUM)
perf-throttle-updates— 使用limitUrlUpdates限制 URL 的频繁更新perf-debounce-search— 使用内置的limitUrlUpdates对搜索输入进行防抖perf-clear-on-default— 使用 clearOnDefault 保持 URL 简洁perf-avoid-rerender— 对使用 URL 状态的组件进行记忆化(Next.js)perf-key-isolation— 在 Next.js 之外依赖键隔离(v2.5+)perf-serialize-utility— 使用 createSerializer 生成链接 URL
6. 历史记录与导航(MEDIUM)
history-push-navigation— 选择 history:push 还是 history:replacehistory-scroll-behavior— 控制 URL 变化时的滚动行为
7. 调试与测试(LOW-MEDIUM)
debug-enable-logging— 启用调试日志以排查问题debug-testing— 测试带有 URL 状态的组件
8. 高级模式(LOW)
advanced-custom-parsers— 为复杂类型创建自定义解析器advanced-url-keys— 使用 urlKeys 缩短 URLadvanced-eq-function— 为对象解析器实现 eq 函数advanced-framework-adapters— 使用特定框架的适配器advanced-process-url-search-params— 使用processUrlSearchParams规范化 URL 结构(v2.6+)
使用方法
阅读各个参考文件,了解详细说明和代码示例:
参考文件
| 文件 | 说明 |
|---|---|
| AGENTS.md | 包含所有规则的完整汇编指南 |
| references/_sections.md | 类别定义和排序 |
| assets/templates/_template.md | 新规则模板 |
| metadata.json | 版本和参考信息 |
评论
支持 Markdown