【问题标题】:How to achieve dynamic url tree in NextJSNextJS中如何实现动态url树
【发布时间】:2021-09-26 07:23:47
【问题描述】:

根据我对 nextjs 路线的了解 -

blog->[id].jsx 给出“blog/1”、“blog/2”等。

但我想实现 page-subpage-subpage 类型的 url 树,其中每个页面都可以有子页面,子页面可以有更多的子页面。所以 url 可能看起来像这样 -

“页面/子页面/子子页面”等

我在后端使用 django treebeard,所以页面和子页面 url 都是动态的并且来自 API 调用。目前我尝试使用以下结构-

  • 页数/

    • index.js

    • [蛞蝓].js

它只让我能够只获取一级页面。我想获得多级页面访问权限。

有人做过吗?请帮忙。

【问题讨论】:

    标签: typescript api url react-router next.js


    【解决方案1】:

    URL 树基于您的页面文件夹中的文件夹和文件,因此您可以简单地添加文件夹和文件来制作您需要的树。例如,博客可能具有如下文件夹和文件结构:

    • 页数/
      • index.js (blogsite.com)
      • 博客/
        • index.js (blogsite.com/blog)
        • [id]/
          • index.js (blogsite.com/blog/123)
          • cmets/
            • index.js (blogsite.com/blog/123/cmets)
            • [commentId].js (blogsite.com/blog/123/cmets/321)

    根据评论进行编辑:

    我错过了提问者实际上意味着他们事先不知道树的深度。在这种情况下,您可以使用类似 [...id] 的catch all route,页面将获取查询对象中存在的所有参数。

    【讨论】:

    • 我已经知道了,我的页面有无限级别的子页面,所以我不知道我需要走多深。按照这个结构,我要设置子页面的层级限制,比如pages/[id]/[id]/[id],所以我的子页面层级只有3。
    • 啊,明白了!您可以通过catch all routes 实现这一目标。
    • 谢谢兄弟@sansar,我不知道我是怎么错过他们的文档的,但这正是我要找的那篇。
    猜你喜欢
    • 2022-06-16
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-01
    • 2017-06-13
    • 2013-03-05
    相关资源
    最近更新 更多