OSS探訪GitHubでログイン

React向けの型安全な経路定義、検索条件、画面遷移を一つの型情報で結ぶルーター

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
15,152
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/10/05
ページ内ナビ

概要

TanStack Routerは、URLの経路、検索条件、データ読み込み、画面遷移を型でつなぐReact向けルーターです。リンク先や検索値の誤りを開発時に見つけやすくし、利用者がURLを共有できる画面状態を組み立てられます。

特徴と向いている用途

実機検証あり(下記の環境・範囲に限定) · 内容確認日:

主な特徴

何を処理できるか

経路ツリーからURLと検索条件の型を推論し、リンク、画面遷移、読み込み処理へ同じ情報を渡せます。検証関数で文字列の検索値をページ番号などのアプリ内表現へ変換できます。

出典:[1][2][3]

向いている用途

どの場面に合うか

商品一覧や管理画面など、検索・絞り込み状態をURLに残しながら、移動先と検索値をTypeScriptで確認したいReactアプリに向きます。固定版の例ではpage=2を読み、次の場所としてpage=3を組み立てます。

出典:[2][3]

導入前の確認

導入前に確認する点

これはReact向けのライブラリであり、認証方式や画面部品を提供する完成済みアプリではありません。Node.js 20.19以上が必要です。GitHubはMITと表示し、固定コミットのLICENSEもMIT本文です。

出典:[3][4][5]

1.170.41 / macOS, Node.js 26.7.0, isolated temporary npm project

Executed the pinned @tanstack/react-router API example and verified /products page=2 followed by /products page=3; no browser or external service was used.

参考にした公式資料

  1. [1]TanStack/router README at 57e126e99dbd(2026-10-05)
  2. [2]Router official documentation(2026-10-05)
  3. [3]@tanstack/react-router 1.170.41 package source(2026-10-05)
  4. [4]TanStack/router LICENSE at 57e126e99dbd(2026-10-05)
  5. [5]TanStack/router GitHub metadata(2026-10-05)
編集部からの補足

検索条件をURLで共有し、経路変更を型で追いたいReactアプリで有力です。まず固定版のメモリー履歴で検索値の変換と次の場所の生成を確認してください。

3ステップで試す

  1. 1

    固定版を準備する

    Node.js 20.19以上とnpmが必要です。一時ディレクトリにReact用Router 1.170.41を固定して導入します。

    demo=$(mktemp -d "${TMPDIR:-/tmp}/tanstack-router.XXXXXX") && cd "$demo" && npm init -y >/dev/null && npm install --save-exact @tanstack/react-router@1.170.41 react@19.2.0 react-dom@19.2.0
  2. 2

    型付き経路と検索条件を書く

    /productsのpage検索値を数値へ変換する経路ツリーを作り、メモリー履歴をpage=2で開始します。

    printf '%s\n' 'import { createRootRoute, createRoute, createRouter } from '\''@tanstack/react-router'\''' 'import { createMemoryHistory } from '\''@tanstack/history'\''' 'const root=createRootRoute()' 'const products=createRoute({getParentRoute:()=>root,path:'\''/products'\'',validateSearch:s=>({page:Number(s.page??1)})})' 'const router=createRouter({routeTree:root.addChildren([products]),history:createMemoryHistory({initialEntries:['\''/products?page=2'\'']})})' 'await router.load()' 'console.log(`${router.state.location.pathname} page=${router.state.location.search.page}`)' 'const next=router.buildLocation({to:'\''/products'\'',search:{page:3}})' 'console.log(`${next.pathname} page=${next.search.page}`)' > demo.mjs
  3. 3

    現在地と次の場所を検証する

    現在地のpage=2と、型付きの画面遷移用に組み立てたpage=3が順に出ることを確認します。

    test "$(node demo.mjs)" = $'/products page=2\n/products page=3'
公式READMEで確認

成長

成長の推移 · 直近30日

15,152 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
127
Open PR
406

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • react
  • router
  • routing
  • javascript
  • searchparams
  • search
  • url
  • route
  • typesafe
  • typescript
  • state-management
  • fullstack
Stars
15,152
Forks
1,881
Watchers
45
Open Issues
317
Contributors
463
所有者種別
Organization
主要言語
TypeScript
ライセンス
MIT
リポジトリ最終更新
2026/10/05

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?