基于文件的路由要求您遵循一些简单的文件命名约定,以确保路由能正确生成。这些约定所实现的概念在路由树与嵌套 (Route Trees & Nesting)指南中有详细说明。
功能特性 | 描述 |
---|---|
__root.tsx | 根路由文件必须命名为 __root.tsx,并且必须放置在配置的 routesDirectory 根目录下。 |
. 分隔符 | 路由可以使用 . 字符表示嵌套路由。例如,blog.post 将作为 blog 的子路由生成。 |
$ 标识符 | 带有 $ 标识符的路由段会被参数化,并从 URL 路径名中提取值作为路由 param。 |
_ 前缀 | 带有 _ 前缀的路由段被视为无路径布局路由 (pathless layout routes),在匹配其子路由与 URL 路径名时不会被使用。 |
_ 后缀 | 带有 _ 后缀的路由段会将该路由排除在任何父路由的嵌套之外。 |
(folder) 文件夹命名模式 | 匹配此模式的文件夹被视为路由组 (route group),防止文件夹被包含在路由的 URL 路径中。 |
index 标识符 | 以 index 标识符结尾的路由段(在任何文件扩展名之前)会在 URL 路径名与父路由完全匹配时匹配父路由。可通过 indexToken 配置选项进行配置,详见选项 (options)。 |
.route.tsx 文件类型 | 当使用目录组织路由时,可以使用 route 后缀在目录路径下创建路由文件。例如,blog.post.route.tsx 或 blog/post/route.tsx 可以用作 /blog/post 路由的路由文件。可通过 routeToken 配置选项进行配置,详见选项 (options)。 |
💡 提示: 项目的文件命名约定可能会受到配置选项 (options)的影响。
动态路径参数 (Dynamic path params) 可用于扁平结构和目录路由中,以创建能够匹配 URL 路径动态段的路由。动态路径参数在文件名中用 $ 字符表示:
文件名 | 路由路径 | 组件输出 |
---|---|---|
... | ... | ... |
ʦ posts.$postId.tsx | /posts/$postId | <Root><Posts><Post> |
更多关于动态路径参数的内容,请参阅路径参数 (Path Params)指南。
无路径路由 (Pathless routes) 在不要求 URL 路径的情况下,用逻辑或组件包裹子路由。非路径路由在文件名中用 _ 字符表示:
文件名 | 路由路径 | 组件输出 |
---|---|---|
ʦ _app.tsx | ||
ʦ _app.a.tsx | /a | <Root><App><A> |
ʦ _app.b.tsx | /b | <Root><App><B> |
要了解更多关于无路径路由的内容,请参阅路由概念 - 无路径布局路由 (Routing Concepts - Pathless Routes)指南。
Your weekly dose of JavaScript news. Delivered every Monday to over 100,000 devs, for free.