Skip to content

Conversation

Azir-11
Copy link
Contributor

@Azir-11 Azir-11 commented Oct 14, 2025

优化后目前完整的处理逻辑大致是:

  • 跳过外链节点:

    • 如果 path、name、component 任一为外链(以 http/https 开头),该节点及其子树不参与路由注册。
  • layout 节点:

    • layout 自身不参与路径拼接,也不作为可访问页面注册;
    • 仅递归处理其 children。
  • defaultMenu 节点:

    • 条件:菜单项 meta.defaultMenu === true,且当前不位于其它父路由(即不在另一个 defaultMenu 子树中提升)。
    • 行为:
      • 将该节点作为“顶级路由”注册(不被 layout 包裹);
      • 路径为“绝对路径”,由祖先路径片段 + 自身 path 拼接后规范化(比如:/system/user);
      • 该节点的子页面,作为它的“二级子路由”注册(不挂在 layout 下)。
  • 普通节点:

    • 如果还有子节点:继续向下收集路径片段,直到叶子;
    • 如果是叶子节点:
      • 若当前位于某个 defaultMenu 顶级之下,则作为该顶级的二级子路由注册;
      • 否则作为 layout 的二级子路由注册。

额外:除了支持当前的 layout 布局,顶级页面布局,本次更新还增加了对嵌套的 defaultMenu 的支持,defaultMenu 下如果有其他的页面组件,那么它会被塞到父级的 defaultMenu 那里去,以 defaultMenu 作为它的 layout

@pixelmaxQm pixelmaxQm merged commit d0829fb into flipped-aurora:dev-286 Oct 14, 2025
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants