Router 路由
在 NocoBase 中,插件通过路由来注册页面。两种常用方式:
this.router.add()— 注册普通页面路由this.pluginSettingsManager.addMenuItem()+addPageTabItem()— 注册插件设置页
路由的注册通常在插件的 load() 方法中完成,详见 Plugin 插件。
NocoBase v2 的插件,路由注册后会默认加上 /v2 前缀,访问时需要带上这个前缀。
默认路由
NocoBase 已经注册了以下默认路由:
页面路由
通过 this.router.add() 注册页面路由。页面组件建议使用 componentLoader 按需加载,这样页面代码会在真正访问时才被加载。
页面文件必须使用 export default 导出组件。
在插件 load() 中注册:
router.add() 的第一个参数是路由名称,支持用点号 . 表示父子关系。比如 root.home 表示 root 的子路由。
在组件中,可以通过 ctx.router.navigate('/hello') 来导航到这个路由。
详情可以参考 Component 组件开发 中的路由部分。
嵌套路由
通过点号命名实现嵌套,父级路由使用 <Outlet /> 渲染子路由内容:
动态参数
路由路径支持动态参数:
在组件中,可以通过 ctx.route.params 获取动态参数:
详情可以参考 Component 组件开发 中的路由部分。
componentLoader vs element
componentLoader(推荐):按需加载,适合页面组件,页面文件需要export defaultelement:直接传入 JSX,适合布局组件或非常轻量的内联页面
如果页面本身依赖较重,建议优先使用 componentLoader。
插件设置页
通过 this.pluginSettingsManager 注册插件设置页。注册分两步——先用 addMenuItem() 注册菜单入口,再用 addPageTabItem() 注册实际页面。设置页会出现在 NocoBase 的「插件配置」菜单中。

注册后,访问路径为 /admin/settings/hello。当菜单下只有一个页面时,顶部 tab 栏会自动隐藏。
多 Tab 设置页
如果设置页需要多个子页面,给同一个 menuKey 注册多个 addPageTabItem 即可——顶部会自动出现 tab 栏:
addMenuItem 参数
addPageTabItem 参数
相关链接
- Plugin 插件 — 路由在
load()中注册 - Component 组件开发 — 路由挂载的页面组件怎么写
- 插件实战示例:做一个插件设置页 — 完整的设置页示例

