Link,拿起这把剑... 我是说 Devtools!... 来帮助你前进!
举起你的双手欢呼吧!因为 TanStack Router 自带专用的开发工具!🥳
当你开始你的 TanStack Router 之旅时,你会希望这些开发工具在你身边。它们可以帮助可视化 TanStack Router 的所有内部运作,并且如果你发现自己陷入困境,它们可能会为你节省数小时的调试时间!
开发工具是一个单独的包,你需要安装它
npm install -D @tanstack/react-router-devtools
npm install -D @tanstack/react-router-devtools
或
pnpm add -D @tanstack/react-router-devtools
pnpm add -D @tanstack/react-router-devtools
或
yarn add -D @tanstack/react-router-devtools
yarn add -D @tanstack/react-router-devtools
或
bun add -D @tanstack/react-router-devtools
bun add -D @tanstack/react-router-devtools
import { TanStackRouterDevtools } from '@tanstack/react-router-devtools'
import { TanStackRouterDevtools } from '@tanstack/react-router-devtools'
如果 Devtools 以 TanStackRouterDevtools 的方式导入,则不会在生产环境中显示。如果你想在 process.env.NODE_ENV === 'production' 的环境中使用开发工具,请改用 TanStackRouterDevtoolsInProd,它具有所有相同的选项
import { TanStackRouterDevtoolsInProd } from '@tanstack/react-router-devtools'
import { TanStackRouterDevtoolsInProd } from '@tanstack/react-router-devtools'
开发工具工作的最简单方法是在你的根路由(或任何其他路由)内部渲染它们。这将自动将开发工具连接到 router 实例。
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} />
}
如果在 RouterProvider 内部渲染开发工具不是你喜欢的,devtools 的 router prop 接受你传递给 Router 组件的同一个 router 实例。这使得可以将开发工具放置在页面上的任何位置,而不仅仅是在 provider 内部
function App() {
return (
<>
<RouterProvider router={router} />
<TanStackRouterDevtools router={router} />
</>
)
}
function App() {
return (
<>
<RouterProvider router={router} />
<TanStackRouterDevtools router={router} />
</>
)
}
浮动模式会将开发工具作为固定的浮动元素挂载到你的应用程序中,并在屏幕角落提供一个切换按钮来显示和隐藏开发工具。此切换状态将被存储并在重新加载时在 localStorage 中记住。
将以下代码尽可能放在你的 React 应用程序的较高位置。它越靠近页面根目录,效果越好!
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} />
</>
)
}
要控制 devtools 的位置,请导入 TanStackRouterDevtoolsPanel
import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools'
import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools'
然后它可以附加到提供的 shadow DOM 目标
<TanStackRouterDevtoolsPanel
shadowDOMTarget={shadowContainer}
router={router}
/>
<TanStackRouterDevtoolsPanel
shadowDOMTarget={shadowContainer}
router={router}
/>
点击这里在 StackBlitz 上查看此功能的实时示例。
嵌入模式会将开发工具作为常规组件嵌入到你的应用程序中。之后你可以随意设置其样式!
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}
/>
</>
)
}
使用这些选项来设置开发工具的样式。
你的每周 JavaScript 新闻。每周一免费发送给超过 10 万名开发者。