tanstack-skills/tanstack-router

Routage type-safe pour applications React et Solid avec prise en charge de premier ordre des paramètres de recherche, chargement de données et intégration transparente avec l'écosystème React.

Qu'est-ce que tanstack-router ?

Ce skill, tanstack-skills/tanstack-router, permet aux agents IA comme Claude Code, Cursor ou Codex d'utiliser TanStack Router, une bibliothèque de routage type-safe pour React et Solid. Il offre des fonctionnalités avancées telles que des paramètres de recherche de premier ordre, le chargement de données, la gestion d'état avec React Query, et une intégration transparente avec l'écosystème React. L'agent peut créer des routes avec des schémas de validation, gérer les transitions, et utiliser des hooks comme `useSearch` ou `useLoaderData` pour un développement d'applications robuste et sûr. Le skill supporte également la configuration de layouts, l'optimisation des performances avec le prefetching, et la gestion d'erreurs via des intercepteurs.

Compatible avec~Claude Code~Codex CLI~Cursor
Part ofReact
npx skills add https://github.com/tanstack-skills/tanstack-skills/tree/main/skills/tanstack-router

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait tanstack-router ?

Routage type-safe pour applications React et Solid avec prise en charge de premier ordre des paramètres de recherche, chargement de données et intégration transparente avec l'écosystème React.

Démarrage rapide

npm install @tanstack/react-router
# ou
pnpm add @tanstack/react-router

Fonctionnalités principales

  • Routage type-safe complet : Les routes, paramètres et données sont typés statiquement.
  • Paramètres de recherche de premier ordre : Validation et typage des paramètres d'URL avec Zod ou d'autres schémas.
  • Chargement de données intelligent : Hooks comme useLoaderData et useMatch pour charger et transformer les données.
  • Intégration avec React Query : Utilisez TanStack Query pour la gestion d'état côté serveur.
  • Transitions et animations : Support de transitions d'état et d'animations via @tanstack/react-router-ssr.
  • Optimisation automatique : Préchargement, mise en cache et rendu côté serveur (SSR).

Exemple de base

import { createRouter, RouterProvider, Route, rootRoute } from '@tanstack/react-router'

const rootRoute = new Route({
  getParentRoute: () => rootRoute,
  path: '/',
  component: () => <div>Accueil</div>,
})

const indexRoute = new Route({
  getParentRoute: () => rootRoute,
  path: '/',
  component: () => <div>Bienvenue sur TanStack Router !</div>,
})

const routeTree = rootRoute.addChildren([indexRoute])

const router = createRouter({ routeTree })

function App() {
  return <RouterProvider router={router} />
}

Utilisation avancée

Validation des paramètres de recherche

import { z } from 'zod'

const searchSchema = z.object({
  page: z.number().default(1),
  search: z.string().optional(),
})

const searchRoute = new Route({
  getParentRoute: () => rootRoute,
  path: '/search',
  validateSearch: searchSchema.parse,
  component: SearchComponent,
})

function SearchComponent() {
  const search = searchRoute.useSearch()
  return <div>Page : {search.page}</div>
}

Chargement de données

const dataRoute = new Route({
  getParentRoute: () => rootRoute,
  path: '/data',
  loader: async () => {
    const response = await fetch('/api/data')
    return response.json()
  },
  component: () => {
    const data = dataRoute.useLoaderData()
    return <div>{JSON.stringify(data)}</div>
  },
})

Intégration avec React Query

import { QueryClient, QueryClientProvider, useQuery } from '@tanstack/react-query'

const queryClient = new QueryClient()

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <RouterProvider router={router} />
    </QueryClientProvider>
  )
}

Configuration recommandée dans SKILL.md

  • Ajoutez tanstack-router comme dépendance.
  • Utilisez createRouter exporté pour créer votre routeur.
  • Définissez vos routes avec new Route et composez-les avec addChildren.
  • Si vous utilisez TypeScript, définissez RouteTree manuellement pour tirer parti du typage strict.

Ressources

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

Skills associés