首页 > 解决方案 > Gatsby 客户端路由是否需要方括号?

问题描述

我正在将客户端路由添加到现有网站。我即将结束该项目,我注意到 Gatsby 文档说您需要将客户端路由放在文件/文件夹中,并在其名称周围加上方括号(例如:)parentpath/[somepathprop].js。我没有在我的任何客户端路由文件中使用这种格式,但一切正常。为什么盖茨比推荐方括号?

我正在使用gatsby-plugin-create-client-paths插件。

这样的文件有什么问题pages/users/index.js在此处输入图像描述

标签: routesgatsbyclient-side

解决方案


Gatsby 建议在构建时 Gatsby 有一些未知参数的情况下使用括号表示法 ( []),例如作为页面 slug () 一部分的标识符/user/:id,就像您的情况一样,以避免代码破坏或错误未知字段的重定向。例如:src/pages/users/[id].js将生成类似/users/:id.

在您的情况下,由于您使用的是gatsby-plugin-create-client-paths插件,因此您允许 Gatsby 在路径下生成页面/user,该路径仅存在于客户端中。

像这样的 pages/users/index.js 文件有什么问题?

正如我所说,在您的用例中,您的方法可能有效,但请记住,如果您需要生成类似 的路径/user/123456789,则项目可能会中断,因为它是系统中的未知路径。这就是为什么平方符号在这种情况下可以帮助您的原因。

话虽如此,请仔细测试您的项目,gatsby developgatsby build确保一切都按预期工作。

Gatsby 客户端路由是否需要方括号?

这取决于每种情况,但理想情况下,是的。使用这种表示法的主要目的是避免未知字段的错误行为(错误的重定向或潜在的编译问题),尤其是当它们是 URL 的一部分时。


推荐阅读