routes - Gatsby 客户端路由是否需要方括号?
问题描述
我正在将客户端路由添加到现有网站。我即将结束该项目,我注意到 Gatsby 文档说您需要将客户端路由放在文件/文件夹中,并在其名称周围加上方括号(例如:)parentpath/[somepathprop].js
。我没有在我的任何客户端路由文件中使用这种格式,但一切正常。为什么盖茨比推荐方括号?
我正在使用gatsby-plugin-create-client-paths
插件。
解决方案
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 develop
并gatsby build
确保一切都按预期工作。
Gatsby 客户端路由是否需要方括号?
这取决于每种情况,但理想情况下,是的。使用这种表示法的主要目的是避免未知字段的错误行为(错误的重定向或潜在的编译问题),尤其是当它们是 URL 的一部分时。
推荐阅读
- python-3.x - 在 python 3.x 中执行 curl 命令是否有任何修改?
- python-3.x - 执行Nuitka编译的*.exe程序时如何隐藏cmd控制台?
- react-hooks - 无法在反应挂钩中单击按钮时绑定单选按钮和复选框数据
- python - 计算一系列火炬张量的均值和标准差
- reactjs - 条件渲染的差异(React)
- python - 我需要删除熊猫中满足条件的行
- sql-server - 我们可以在 SQL 视图中添加 NoLock
- python - 类与函数:如果在 Python 中使用类,是否需要使用“self”关键字?
- apache-spark - 在java spark数据集中将负十进制数转换为正数
- fpga - 电气禁用 FPGA 区域?