【问题标题】:Do Gatsby client-side routes require square brackets?Gatsby 客户端路由是否需要方括号?
【发布时间】:2021-04-05 21:35:19
【问题描述】:

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

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

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

【问题讨论】:

    标签: routes gatsby client-side


    【解决方案1】:

    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 的一部分时。

    【讨论】:

    • 如果您需要生成类似 /user/123456789 的路径,您能多谈一下吗?你是说如果我想在构建时创建一个特定的用户路由,即:不是客户端路由?
    • 是的。该路径(/user/123456789)只会在客户端生成
    猜你喜欢
    • 2020-09-07
    • 2019-05-31
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多