文档目录
glen
· 预计阅读 1 分钟

后端菜单怎样找到页面组件

本文导航
后端菜单怎样找到页面组件

后端菜单怎样找到页面组件

addAsyncRoutes 拿到菜单节点之后:

  1. 如果 meta.frameSrc 有值,组件用内置 iframe,不再找 Vue 文件。
  2. 否则取 component,空的话用 path。
  3. 在「框架 src/views 的 glob」加上「子系统改写后的 viewModules」里做 includes,取第一个命中的加载函数,赋给 route.component。

匹配是字符串包含,不是相等。/order/list/index 可以命中 /order/list/index.vue。反过来,键太短也会误伤:如果有人注册了键 /index.vue,很多路径都会先命中它。

一个对得上的例子

子系统:

viewModulesPathPrefix: "/order"
// ./views/list/index.vue → /order/list/index.vue

后端菜单(owl 的 MenuOption):

router.MenuOption{
    ComponentName: "OrderList",
    Path:          "/order/list/index",
}

ComponentName 变成路由 name。Path 用来匹配视图。两边都写 /order/list/index 这一段。

对不上时的现象

  • 路由加进去了,地址能变,页面区域空白:component 没有匹配到加载函数。
  • 打开了别的页面:includes 命中了更短的键。把前缀写完整,避免多个子系统共用同一段路径。
  • 控制台没有异常:匹配失败不是抛错,是组件为空。

框架核心视图的 glob 键带 /src/views。业务页不要指望用 /src/views/foo 去对子系统文件,子系统文件的键是前缀加相对路径。

评论

加载评论中…

上一篇 静态路由、隐藏路由和动态路由 下一篇 按子系统切换菜单

BitLabs © 2026 · 论坛讨论 · 博客长文 · 文档手册