Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
TanStack Routerで型安全かつ効率的なルーティングを実現 株式会社サイバーエージェント・安井大晟(ytaisei) TSKaigi(LT)
Slide 2
Slide 2 text
自己紹介 ● 新卒1年目 ● Webフロントエンド ● React、TypeScript ● TanStack関連の記事を よく書きます
Slide 3
Slide 3 text
Reactのルーティングどうしてますか?
Slide 4
Slide 4 text
Vite+Reactなら ● React Router Frameworkを使うなら ● Next.js ● Remix ● Remix SPA Mode ルーティングの選択肢
Slide 5
Slide 5 text
Vite+Reactなら ● React Router ● TanStack Router Frameworkを使うなら ● Next.js ● Remix ● Remix SPA Mode 今回紹介するのが 選択肢を増やしたい!
Slide 6
Slide 6 text
Search Params による状態管理 型安全で シンプルな ルーティング 02 File-Basedな ルート生成 01 バンドルサイズを 軽減する Code Splitting 03 04 紹介する4つの特徴
Slide 7
Slide 7 text
File-Basedなルート生成 01 参考:https://tanstack.com/router/latest/docs/framework/react/guide/file-based-routing
Slide 8
Slide 8 text
Code-Basedに ルーティングを 実装する必要がない 各ルートごとに ● Route Component ● Pending Component ● Error Component ● NotFount Component を定義することができる
Slide 9
Slide 9 text
型安全でシンプルなルーティング 02 参考:https://tanstack.com/router/latest/docs/framework/react/guide/type-safety
Slide 10
Slide 10 text
ルーティングパスだけでなく、 Search Paramsなども型安全に扱える
Slide 11
Slide 11 text
アプリケーション全体で型安全に実装
Slide 12
Slide 12 text
1. @tanstack/router-cliがFiled-Basedの ディレクトリ構成を解析して Route Treeを自動生成 2. createRouter APIでrouterの インスタンスを作成 3. インスタンスの型定義をGlobalに登録 アプリケーション全体で型安全に実装
Slide 13
Slide 13 text
バンドルサイズを軽減する Code Splitting 03 参考:https://tanstack.com/router/latest/docs/framework/react/guide/code-splitting
Slide 14
Slide 14 text
lazy.tsxとroute.tsxに 分割するだけで Code Splittingしてくれる 各RouteごとにCode Splitting
Slide 15
Slide 15 text
route.tsx Critical Route lazy.tsx Non-Critical/Lazy Route 初回ロード時に読み込まれるコード 遅延して読み込まれるコード
Slide 16
Slide 16 text
route.tsx Critical Route lazy.tsx Non-Critical/Lazy Route コンポーネントがLazy Routeの対象になる
Slide 17
Slide 17 text
Search Paramsによる状態管理 04 参考:https://tanstack.com/router/latest/docs/framework/react/guide/search-params
Slide 18
Slide 18 text
● 各Routeに必要なSearch Paramsを型定義 ● Zodと組み合わせ可能 ● JSON-Firstで複雑な構造が扱える ● 型安全に扱える ● Validation可能 TanStack Routerで扱うSearch Params
Slide 19
Slide 19 text
ユーザ目線 ● Search Paramsの状態を保ったままリンクを共有可能 開発者目線 ● JSON-Firstで複雑な構造が扱える上、Validationが可能なため、 1種の状態管理として採用することができる なぜSearch Paramsで状態管理する?
Slide 20
Slide 20 text
TanStack Router’s Summary ● 高いDX(Developer Experience)に配慮 ○ 型安全性 ○ File-Based Routing ○ Code Splitting ● Search Paramsで型安全な状態管理 ○ ユーザ体験・DX向上
Slide 21
Slide 21 text
ご清聴ありがとうございました! https://twitter.com/ytaisei_ https://zenn.dev/taisei_13046