nuqs について
TanStack Router を使わない Vite React アプリで、nuqs による URL 状態管理を行うための開発スキルです。URL 状態の規約と主要な設定を示し、TanStack Router を使うアプリでは検索パラメーターを使うよう案内します。
主な機能
- 01共有可能な URL 状態の規約
- 02ルーターなしの Vite React 設定
- 03履歴と shallow の既定動作
- 04JSON 解析のバリデーション指針
- 05関連クエリパラメーターの一括更新
活用シーン
- 01共有するフィルターの URL 保存
- 02地図座標とズーム値のクエリ保存
- 03URL 状態と一時的な UI 状態の分離
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ fixmyberlin/ fixmyskills --skill nuqsインストール後、Claude Code で/nuqsを入力して読み込まれたか確認します。
詳細
LLM リファレンス: ドキュメントのインデックスと最新の API を取得するには、llms.txt を参照してください。全ドキュメントをまとめたファイル:llms-full.txt。人間が読みやすいドキュメント:nuqs.dev/docs。
このスキルで上流の API リファレンスを重複させないでください。パーサー、オプション、テストアダプター、トラブルシューティングには llms.txt / llms-full.txt を使用してください。
URL 状態のルール(FMC)
| アプリ | URL 状態 |
|---|---|
| TanStack Router を使用(SPA または Start) | ルーターの検索パラメーター:validateSearch — スキル tanstack-router-conventions。nuqs は使用しないでください。 |
| TanStack Router を使用しない Vite React アプリ | nuqs |
TanStack Router では、代わりに validateSearch を使用してください(tanstack-router-conventions → references/params-search-ui-routes.md)。
セットアップ(Vite、ルーターなし)
import { NuqsAdapter } from 'nuqs/adapters/react'
createRoot(root).render(
<NuqsAdapter>
<App />
</NuqsAdapter>,
)
nuqs 2.9.5 でアダプターのエクスポートを確認済みです:nuqs/adapters/react の NuqsAdapter。テストでは nuqs/adapters/testing の NuqsTestingAdapter を使用してください(上流のテストを参照)。
状態の分割: URL で共有可能な状態 → nuqs、エフェメラルな UI → Zustand(zustand-state-management)。
影響の大きい注意点
clearOnDefault— デフォルトはtrueです(デフォルト値と等しい値は URL から削除されます)。デフォルト値でもパラメーターを表示したままにする必要がある場合に限り、falseを設定してください。- 履歴と shallow — 履歴のデフォルトは
replaceです(戻るボタンの履歴を残す場合はhistory: 'push'を渡します)。shallowのデフォルトはtrueです。 parseAsJson— v2 以降では、実行時バリデーター(Zod スキーマなど)が必要です。- デバッグ —
localStorage.debug = 'nuqs'。 - パッケージ — ESM 専用です。v2 で
nuqs/parsersエントリーポイントが削除されたため、パーサーはnuqsからインポートしてください。 useQueryStates— 関連するパラメーター(フィルター、緯度/経度/ズーム)をまとめて、1 回の URL 更新にしてください。
関連する FMC スキル
| スキル | 役割 |
|---|---|
tanstack-router-conventions | TanStack Router を使用するアプリでの validateSearch |
zustand-state-management | URL に含めないエフェメラルなクライアント状態 |
コメント
Markdown 対応