Nimm dieses Schwert... Ich meine Devtools!... um dir auf deinem Weg zu helfen!
Schwinge deine Hände in die Luft und rufe Hurra, denn TanStack Router kommt mit dedizierten Devtools! 🥳
Wenn du deine TanStack Router-Reise beginnst, wirst du diese Devtools an deiner Seite haben wollen. Sie helfen dir, alle inneren Abläufe von TanStack Router zu visualisieren und sparen dir wahrscheinlich Stunden beim Debuggen, falls du mal in Schwierigkeiten gerätst!
Die Devtools sind ein separates Paket, das Sie installieren müssen
npm install @tanstack/react-router-devtools
npm install @tanstack/react-router-devtools
oder
pnpm add @tanstack/react-router-devtools
pnpm add @tanstack/react-router-devtools
oder
yarn add @tanstack/react-router-devtools
yarn add @tanstack/react-router-devtools
oder
bun add @tanstack/react-router-devtools
bun add @tanstack/react-router-devtools
import { TanStackRouterDevtools } from '@tanstack/react-router-devtools'
import { TanStackRouterDevtools } from '@tanstack/react-router-devtools'
Die Devtools werden nicht in der Produktion angezeigt, wenn sie als TanStackRouterDevtools importiert werden. Wenn du Devtools in einer Umgebung mit process.env.NODE_ENV === 'production' haben möchtest, verwende stattdessen TanStackRouterDevtoolsInProd, das alle gleichen Optionen hat.
import { TanStackRouterDevtoolsInProd } from '@tanstack/react-router-devtools'
import { TanStackRouterDevtoolsInProd } from '@tanstack/react-router-devtools'
Der einfachste Weg, damit die Devtools funktionieren, ist, sie innerhalb deiner Root-Route (oder einer beliebigen anderen Route) zu rendern. Dadurch werden die Devtools automatisch mit der Router-Instanz verbunden.
const rootRoute = createRootRoute({
component: () => (
<>
<Outlet />
<TanStackRouterDevtools />
</>
),
})
const routeTree = rootRoute.addChildren([
// ... other routes
])
const router = createRouter({
routeTree,
})
function App() {
return <RouterProvider router={router} />
}
const rootRoute = createRootRoute({
component: () => (
<>
<Outlet />
<TanStackRouterDevtools />
</>
),
})
const routeTree = rootRoute.addChildren([
// ... other routes
])
const router = createRouter({
routeTree,
})
function App() {
return <RouterProvider router={router} />
}
Wenn das Rendern der Devtools innerhalb des RouterProvider nicht dein Ding ist, akzeptiert eine router-Prop für die Devtools dieselbe router-Instanz, die du an die Router-Komponente übergibst. Dadurch ist es möglich, die Devtools irgendwo auf der Seite zu platzieren, nicht nur innerhalb des Providers.
function App() {
return (
<>
<RouterProvider router={router} />
<TanStackRouterDevtools router={router} />
</>
)
}
function App() {
return (
<>
<RouterProvider router={router} />
<TanStackRouterDevtools router={router} />
</>
)
}
Der Floating Mode lädt die Devtools als festes, schwebendes Element in Ihrer App und bietet einen Schalter in der Ecke des Bildschirms, um die Devtools ein- und auszublenden. Dieser Schalterzustand wird in localStorage gespeichert und über Neuladungen hinweg beibehalten.
Platziere den folgenden Code so hoch wie möglich in deiner React-App. Je näher er am Root der Seite ist, desto besser wird er funktionieren!
import { TanStackRouterDevtools } from '@tanstack/react-router-devtools'
function App() {
return (
<>
<Router />
<TanStackRouterDevtools initialIsOpen={false} />
</>
)
}
import { TanStackRouterDevtools } from '@tanstack/react-router-devtools'
function App() {
return (
<>
<Router />
<TanStackRouterDevtools initialIsOpen={false} />
</>
)
}
Um die Position der Devtools zu steuern, importiere das TanStackRouterDevtoolsPanel
import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools'
import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools'
Es kann dann an das bereitgestellte Shadow DOM-Ziel angehängt werden
<TanStackRouterDevtoolsPanel
shadowDOMTarget={shadowContainer}
router={router}
/>
<TanStackRouterDevtoolsPanel
shadowDOMTarget={shadowContainer}
router={router}
/>
Klicke hier, um ein Live-Beispiel davon in StackBlitz zu sehen.
Embedded Mode bettet die Devtools als normale Komponente in deine Anwendung ein. Du kannst sie danach beliebig stylen!
import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools'
function App() {
return (
<>
<Router router={router} />
<TanStackRouterDevtoolsPanel
router={router}
style={styles}
className={className}
/>
</>
)
}
import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools'
function App() {
return (
<>
<Router router={router} />
<TanStackRouterDevtoolsPanel
router={router}
style={styles}
className={className}
/>
</>
)
}
Ihre wöchentliche Dosis JavaScript-Nachrichten. Jeden Montag kostenlos an über 100.000 Entwickler geliefert.