nuqs
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesenuqs Best Practices
nuqs 最佳实践
Type-safe URL query state management with nuqs 2.x. Contains rules across 8 categories, prioritized by impact.
基于nuqs 2.x的类型安全URL查询状态管理,包含8个类别的规则,按影响优先级排序。
Rule Categories
规则类别
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Parser Configuration | CRITICAL | |
| 2 | Adapter & Setup | CRITICAL | |
| 3 | State Management | HIGH | |
| 4 | Server Integration | HIGH | |
| 5 | Performance | MEDIUM | |
| 6 | History & Navigation | MEDIUM | |
| 7 | Debugging & Testing | LOW-MEDIUM | |
| 8 | Advanced Patterns | LOW | |
| 优先级 | 类别 | 影响程度 | 前缀 |
|---|---|---|---|
| 1 | 解析器配置 | CRITICAL | |
| 2 | 适配器与设置 | CRITICAL | |
| 3 | 状态管理 | HIGH | |
| 4 | 服务器集成 | HIGH | |
| 5 | 性能优化 | MEDIUM | |
| 6 | 历史记录与导航 | MEDIUM | |
| 7 | 调试与测试 | LOW-MEDIUM | |
| 8 | 高级模式 | LOW | |
Quick Reference
快速参考
1. Parser Configuration (CRITICAL)
1. 解析器配置(CRITICAL)
- — Use typed parsers for non-string values
parser-typed - — Use withDefault for non-nullable state
parser-with-default - — Use literal/enum parsers for constrained values
parser-enum-literals - — Choose correct array parser format
parser-array-format - — Validate JSON parser with Standard Schema
parser-json-validation - — Select appropriate date parser
parser-date-format - — Use parseAsIndex for 1-based URL display
parser-index-offset - — Use parseAsHex for color values
parser-hex-colors - — Create custom parsers for complex types
parser-custom
- — 对非字符串值使用类型化解析器
parser-typed - — 为非空状态使用withDefault
parser-with-default - — 对受限值使用字面量/枚举解析器
parser-enum-literals - — 选择正确的数组解析器格式
parser-array-format - — 使用标准 Schema 验证JSON解析器
parser-json-validation - — 选择合适的日期解析器
parser-date-format - — 使用parseAsIndex实现基于1的URL显示
parser-index-offset - — 对颜色值使用parseAsHex
parser-hex-colors - — 为复杂类型创建自定义解析器
parser-custom
2. Adapter & Setup (CRITICAL)
2. 适配器与设置(CRITICAL)
- — Wrap app with correct NuqsAdapter
setup-adapter - — Add 'use client' for hooks
setup-client-hooks - — Import server utilities from nuqs/server
setup-server-imports - — Define shared parsers in a dedicated file
setup-shared-parsers
- — 使用正确的NuqsAdapter包裹应用
setup-adapter - — 为钩子添加'use client'指令
setup-client-hooks - — 从nuqs/server导入服务器工具
setup-server-imports - — 在专用文件中定义共享解析器
setup-shared-parsers
3. State Management (HIGH)
3. 状态管理(HIGH)
- — Use useQueryStates for related parameters
state-use-query-states - — Use functional updates for derived state
state-functional-updates - — Clear URL parameters with null
state-clear-with-null - — Handle controlled input value properly
state-controlled-inputs - — Avoid derived state from URL parameters
state-avoid-derived - — Use withOptions for parser-level config
state-options-inheritance - — Use setter return value for URL access
state-setter-return
- — 对相关参数使用useQueryStates
state-use-query-states - — 对派生状态使用函数式更新
state-functional-updates - — 使用null清除URL参数
state-clear-with-null - — 正确处理受控输入值
state-controlled-inputs - — 避免从URL参数派生状态
state-avoid-derived - — 使用withOptions配置解析器级别的设置
state-options-inheritance - — 使用setter返回值访问URL
state-setter-return
4. Server Integration (HIGH)
4. 服务器集成(HIGH)
- — Use createLoader for page-level server parsing
server-create-loader - — Use createSearchParamsCache for nested RSC access
server-search-params-cache - — Use shallow:false to trigger server re-renders
server-shallow-false - — Integrate useTransition for loading states
server-use-transition - — Share parsers between client and server
server-share-parsers - — Handle async searchParams in Next.js 15+
server-next15-async
- — 对页面级服务器解析使用createLoader
server-create-loader - — 对嵌套RSC访问使用createSearchParamsCache
server-search-params-cache - — 使用shallow:false触发服务器重新渲染
server-shallow-false - — 集成useTransition处理加载状态
server-use-transition - — 在客户端与服务器之间共享解析器
server-share-parsers - — 在Next.js 15+中处理异步searchParams
server-next15-async
5. Performance (MEDIUM)
5. 性能优化(MEDIUM)
- — Throttle/debounce URL updates
perf-limit-url-updates - — Use clearOnDefault for clean URLs
perf-clear-on-default - — Memoize components using URL state
perf-avoid-rerender - — Use createSerializer for link URLs
perf-serialize-utility
- — 对URL更新进行节流/防抖
perf-limit-url-updates - — 使用clearOnDefault实现简洁URL
perf-clear-on-default - — 对使用URL状态的组件进行 memoize
perf-avoid-rerender - — 对链接URL使用createSerializer
perf-serialize-utility
6. History & Navigation (MEDIUM)
6. 历史记录与导航(MEDIUM)
- — Use history:push for navigation-like state
history-push-navigation - — Use history:replace for ephemeral state
history-replace-ephemeral - — Control scroll behavior on URL changes
history-scroll-behavior - — Handle browser back/forward navigation
history-back-sync
- — 对类导航状态使用history:push
history-push-navigation - — 对临时状态使用history:replace
history-replace-ephemeral - — 控制URL变化时的滚动行为
history-scroll-behavior - — 处理浏览器后退/前进导航
history-back-sync
7. Debugging & Testing (LOW-MEDIUM)
7. 调试与测试(LOW-MEDIUM)
- — Enable debug logging for troubleshooting
debug-enable-logging - — Diagnose common nuqs errors
debug-common-errors - — Test components and hooks with URL state
debug-testing
- — 启用调试日志以排查问题
debug-enable-logging - — 诊断常见的nuqs错误
debug-common-errors - — 测试带有URL状态的组件与钩子
debug-testing
8. Advanced Patterns (LOW)
8. 高级模式(LOW)
- — Use urlKeys for shorter URL param names
advanced-url-keys - — Implement eq function for object parsers
advanced-eq-function - — Configure NuqsAdapter global defaults and URL middleware
advanced-adapter-props - — Use createStandardSchemaV1 and inferParserType
advanced-standard-schema - — useOptimisticSearchParams for Remix/React Router
advanced-optimistic-search-params
- — 使用urlKeys缩短URL参数名称
advanced-url-keys - — 为对象解析器实现eq函数
advanced-eq-function - — 配置NuqsAdapter全局默认值与URL中间件
advanced-adapter-props - — 使用createStandardSchemaV1和inferParserType
advanced-standard-schema - — 在Remix/React Router中使用useOptimisticSearchParams
advanced-optimistic-search-params