框架
版本

基于文件的路由 API 参考

TanStack Router 的基于文件的路由非常灵活,可以根据您的项目需求进行配置。

配置选项

以下选项可用于配置基于文件的路由

警告

不要设置 routeFilePrefixrouteFileIgnorePrefixrouteFileIgnorePattern 选项,以匹配**文件命名约定**指南中使用的任何标记,否则可能会遇到意外行为。

routesDirectory (必填)

这是路由文件所在的目录路径,相对于 cwd(当前工作目录)。

默认情况下,该值设置为以下内容,不能设置为空字符串undefined

txt
./src/routes
./src/routes

generatedRouteTree (必填)

这是生成的路由树将保存到的文件路径,相对于 cwd(当前工作目录)。

默认情况下,该值设置为以下内容,不能设置为空字符串undefined

txt
./src/routeTree.gen.ts
./src/routeTree.gen.ts

如果disableTypes设置为true,则生成的路由树将保存为.js扩展名而不是.ts

virtualRouteConfig

此选项用于配置虚拟文件路由功能。有关更多信息,请参阅“虚拟文件路由”指南。

默认情况下,此值设置为undefined

routeFilePrefix

此选项用于识别路由目录中的路由文件。这意味着只有以此前缀开头的文件才会被考虑用于路由。

默认情况下,此值设置为空字符串,因此路由目录中的所有文件都将被考虑用于路由。

routeFileIgnorePrefix

此选项用于忽略路由目录中的特定文件和目录。如果您希望“选择性”地包含某些不希望被视为路由的文件或目录,这会很有用。

默认情况下,此值设置为-

使用此选项时,您可以拥有这样的结构,它允许您将不是路由文件的相关文件放在一起

txt
src/routes
├── posts
│   ├── -components  // Ignored
│   │   ├── Post.tsx
│   ├── index.tsx
│   ├── route.tsx
src/routes
├── posts
│   ├── -components  // Ignored
│   │   ├── Post.tsx
│   ├── index.tsx
│   ├── route.tsx

routeFileIgnorePattern

此选项用于忽略路由目录中的特定文件和目录。它可以采用正则表达式格式。例如,.((css|const).ts)|test-page 将忽略名称中包含 .css.ts.const.tstest-page 的文件/目录。

默认情况下,此值设置为undefined

routeToken

正如路由概念指南中所述,布局路由在指定路径下渲染,子路由在布局路由中渲染。routeToken用于识别路由目录中的布局路由文件。

默认情况下,此值设置为route

🧠 以下文件名将等于相同的运行时 URL

txt
src/routes/posts.tsx -> /posts
src/routes/posts.route.tsx -> /posts
src/routes/posts/route.tsx -> /posts
src/routes/posts.tsx -> /posts
src/routes/posts.route.tsx -> /posts
src/routes/posts/route.tsx -> /posts

indexToken

正如路由概念指南中所述,索引路由是在 URL 路径与父路由完全相同时匹配的路由。indexToken用于识别路由目录中的索引路由文件。

默认情况下,此值设置为index

🧠 以下文件名将等于相同的运行时 URL

txt
src/routes/posts.index.tsx -> /posts/
src/routes/posts/index.tsx -> /posts/
src/routes/posts.index.tsx -> /posts/
src/routes/posts/index.tsx -> /posts/

quoteStyle

当您的生成路由树生成时,以及当您首次创建新路由时,这些文件将使用您在此处指定的引号样式进行格式化。

默认情况下,此值设置为single

提示

您应该将生成的路由树文件路径从您的代码检查器和格式化工具中忽略,以避免冲突。

semicolons

当您的生成路由树生成时,以及当您首次创建新路由时,如果此选项设置为true,这些文件将使用分号进行格式化。

默认情况下,此值设置为false

提示

您应该将生成的路由树文件路径从您的代码检查器和格式化工具中忽略,以避免冲突。

autoCodeSplitting

此功能仅在您使用 TanStack Router Bundler 插件时可用。

此选项用于为非关键路由配置项启用自动代码拆分。有关更多信息,请参阅“自动代码拆分”指南。

默认情况下,此值设置为false

重要

TanStack Router 的下一个主要版本(即 v2)将默认此值为true

disableTypes

此选项用于禁用为路由树生成类型。

如果设置为true,生成的路由树将不包含任何类型,并将作为.js文件而不是.ts文件写入。

默认情况下,此值设置为false

addExtensions

此选项将文件扩展名添加到生成的路由树中的路由名称中。

默认情况下,此值设置为false

disableLogging

此选项关闭路由生成过程的控制台日志记录。

默认情况下,此值设置为false

routeTreeFileHeader

此选项允许您将内容添加到生成的路由树文件的开头。

默认情况下,此值设置为

json
[
  "/* eslint-disable */",
  "// @ts-nocheck",
  "// noinspection JSUnusedGlobalSymbols"
]
[
  "/* eslint-disable */",
  "// @ts-nocheck",
  "// noinspection JSUnusedGlobalSymbols"
]

routeTreeFileFooter

此选项允许您将内容添加到生成的路由树文件的末尾。

默认情况下,此值设置为

json
[]
[]

enableRouteTreeFormatting

此选项打开生成路由树文件的格式化功能,这对于大型项目来说可能很耗时。

默认情况下,此值设置为true

tmpDir

原子文件写入(路由文件和生成的路由树文件)通过先创建一个临时文件,然后将其重命名到实际位置来实现。

此配置选项允许配置将用于创建这些临时文件的临时目录路径。如果它是相对路径,它将解析为当前工作目录。如果未设置此值,将使用process.env.TSR_TMP_DIR。如果未设置process.env.TSR_TMP_DIR,它将默认设置为相对于当前工作目录的.tanstack/tmp

我们的合作伙伴
Code Rabbit
Netlify
Neon
Clerk
Convex
Sentry
订阅 Bytes

您的每周 JavaScript 资讯。每周一免费发送给超过 10 万开发者。

Bytes

无垃圾邮件。您可以随时取消订阅。

订阅 Bytes

您的每周 JavaScript 资讯。每周一免费发送给超过 10 万开发者。

Bytes

无垃圾邮件。您可以随时取消订阅。