Link,拿着这把剑...我是说开发工具!...来帮助你前进!
挥舞你的双手并大声欢呼,因为 TanStack Router 配备了专用的开发工具!🥳
当您开始 TanStack Router 之旅时,您会希望这些开发工具在您身边。它们有助于可视化 TanStack Router 的所有内部工作原理,如果您遇到困难,可能会为您节省数小时的调试时间!
开发工具是一个需要安装的单独包:
npm install @tanstack/solid-router-devtools
npm install @tanstack/solid-router-devtools
or
pnpm add @tanstack/solid-router-devtools
pnpm add @tanstack/solid-router-devtools
or
yarn add @tanstack/solid-router-devtools
yarn add @tanstack/solid-router-devtools
or
bun add @tanstack/solid-router-devtools
bun add @tanstack/solid-router-devtools
import { TanStackRouterDevtools } from '@tanstack/solid-router-devtools'
import { TanStackRouterDevtools } from '@tanstack/solid-router-devtools'
如果导入为 TanStackRouterDevtools,开发工具将不会在生产环境中显示。如果您想在 process.env.NODE_ENV === 'production' 的环境中使用开发工具,请改用 TanStackRouterDevtoolsInProd,它具有所有相同的选项:
import { TanStackRouterDevtoolsInProd } from '@tanstack/solid-router-devtools'
import { TanStackRouterDevtoolsInProd } from '@tanstack/solid-router-devtools'
开发工具工作的最简单方法是在根路由(或任何其他路由)内部渲染它们。这将自动将开发工具连接到路由器实例。
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 内部渲染开发工具不符合您的喜好,开发工具的 router 属性接受与您传递给 Router 组件相同的 router 实例。这使得可以将开发工具放置在页面的任何位置,而不仅仅是在提供程序内部:
function App() {
return (
<>
<RouterProvider router={router} />
<TanStackRouterDevtools router={router} />
</>
)
}
function App() {
return (
<>
<RouterProvider router={router} />
<TanStackRouterDevtools router={router} />
</>
)
}
浮动模式将开发工具作为应用程序中的固定浮动元素挂载,并在屏幕角落提供一个切换按钮来显示和隐藏开发工具。此切换状态将在重新加载时存储并记住在 localStorage 中。
将以下代码尽可能高地放置在您的 Solid 应用程序中。越接近页面根部,效果越好!
import { TanStackRouterDevtools } from '@tanstack/solid-router-devtools'
function App() {
return (
<>
<Router />
<TanStackRouterDevtools initialIsOpen={false} />
</>
)
}
import { TanStackRouterDevtools } from '@tanstack/solid-router-devtools'
function App() {
return (
<>
<Router />
<TanStackRouterDevtools initialIsOpen={false} />
</>
)
}
要控制开发工具的位置,请导入 TanStackRouterDevtoolsPanel:
import { TanStackRouterDevtoolsPanel } from '@tanstack/solid-router-devtools'
import { TanStackRouterDevtoolsPanel } from '@tanstack/solid-router-devtools'
然后可以将其附加到提供的 shadow DOM 目标:
<TanStackRouterDevtoolsPanel
shadowDOMTarget={shadowContainer}
router={router}
/>
<TanStackRouterDevtoolsPanel
shadowDOMTarget={shadowContainer}
router={router}
/>
点击这里在 StackBlitz 中查看此示例的实时演示。
嵌入模式将开发工具作为应用程序中的常规组件嵌入。之后您可以随意设置其样式!
import { TanStackRouterDevtoolsPanel } from '@tanstack/solid-router-devtools'
function App() {
return (
<>
<Router router={router} />
<TanStackRouterDevtoolsPanel
router={router}
style={styles}
class={class}
/>
</>
)
}
import { TanStackRouterDevtoolsPanel } from '@tanstack/solid-router-devtools'
function App() {
return (
<>
<Router router={router} />
<TanStackRouterDevtoolsPanel
router={router}
style={styles}
class={class}
/>
</>
)
}