Gatsby 客户端路由是否需要方括号?
Do Gatsby client-side routes require square brackets?
我正在向现有网站添加客户端路由。我即将结束该项目,我注意到 Gatsby 文档说您需要将客户端路由放在 files/folders 中,并在其名称周围加上方括号(例如:parentpath/[somepathprop].js
)。我没有在我的任何客户端路由文件中使用该格式,但一切正常。为什么 Gatsby 推荐方括号?
我正在使用 gatsby-plugin-create-client-paths
插件。
像这样的 pages/users/index.js
文件有什么问题?
Gatsby 建议在构建时 Gatsby 有一些未知参数的情况下使用括号表示法 ([]
),例如作为页面 slug 一部分的标识符 (/user/:id
) ,就像您的情况一样,以避免未知字段的代码破坏或错误重定向。例如:src/pages/users/[id].js
将生成类似 /users/:id
.
的路由
在您的情况下,由于您使用的是 gatsby-plugin-create-client-paths
插件,因此您允许 Gatsby 在 /user
路径下生成页面,该路径仅存在于客户端中。
What's the issue with a pages/users/index.js file like this?
正如我所说,在您的用例中,您的方法可能有效,但请记住,如果您需要生成类似 /user/123456789
的路径,项目可能会中断,因为它是系统中的未知路径。这就是为什么平方符号在这种情况下对您有帮助。
说的是,请在 gatsby develop
和 gatsby build
中仔细测试您的项目,以确保一切都按预期工作。
Do Gatsby client-side routes require square brackets?
这取决于每个案例,但理想情况下,是的。使用此表示法的主要目的是避免未知字段的错误行为(错误的重定向或潜在的编译问题),尤其是当它们是 URL.
的一部分时
我正在向现有网站添加客户端路由。我即将结束该项目,我注意到 Gatsby 文档说您需要将客户端路由放在 files/folders 中,并在其名称周围加上方括号(例如:parentpath/[somepathprop].js
)。我没有在我的任何客户端路由文件中使用该格式,但一切正常。为什么 Gatsby 推荐方括号?
我正在使用 gatsby-plugin-create-client-paths
插件。
像这样的 pages/users/index.js
文件有什么问题?
Gatsby 建议在构建时 Gatsby 有一些未知参数的情况下使用括号表示法 ([]
),例如作为页面 slug 一部分的标识符 (/user/:id
) ,就像您的情况一样,以避免未知字段的代码破坏或错误重定向。例如:src/pages/users/[id].js
将生成类似 /users/:id
.
在您的情况下,由于您使用的是 gatsby-plugin-create-client-paths
插件,因此您允许 Gatsby 在 /user
路径下生成页面,该路径仅存在于客户端中。
What's the issue with a pages/users/index.js file like this?
正如我所说,在您的用例中,您的方法可能有效,但请记住,如果您需要生成类似 /user/123456789
的路径,项目可能会中断,因为它是系统中的未知路径。这就是为什么平方符号在这种情况下对您有帮助。
说的是,请在 gatsby develop
和 gatsby build
中仔细测试您的项目,以确保一切都按预期工作。
Do Gatsby client-side routes require square brackets?
这取决于每个案例,但理想情况下,是的。使用此表示法的主要目的是避免未知字段的错误行为(错误的重定向或潜在的编译问题),尤其是当它们是 URL.
的一部分时