说明
不接任何参数:清单的唯一真相源是 PageTabService(Tabs / ActiveUrl / Open / Activate / Close / CloseOthers / CloseAll 与 Changed 事件),本组件只负责渲染、导航与右键菜单,因此同一作用域里只应存在一条页签条。多页签模式下由 AdminLayout 挂在顶栏与内容区之间,并在每次路由变化时记账;首页由 HomeUrl 钉在第 0 位且不可关闭,新页签一律追加在末尾。页签只记地址不记状态:切签是一次常规路由导航,目标页照常重新初始化(不做 keep-alive)。清单经 known.pagetabs 落 localStorage,刷新后恢复,页面内部状态不在保留之列。宽度不够时右侧页签自动收进「更多」下拉。单页 / 多页签由顶栏头像下拉的「导航」段控切换(LocalService.MultiTabs / SetMultiTabsAsync,落 known.multitabs):关掉只是收起页签条,清单仍留在本地,再开即恢复。
常见能力:
- 一页一签,点签即导航
- 悬停出关闭按钮
- 右键批量:关闭当前 / 其他 / 全部
- 首页钉位不可关闭
- 超出宽度收纳进「更多」
- 清单落 localStorage,刷新即恢复
- 与单页 / 多页签开关联动
用法
@* 由 AdminLayout 在多页签模式下自动挂载,无需手写 *@
@inject PageTabService Pages
@inject NavigationManager Nav
Pages.Open("/orders", "订单管理", "shopping-cart"); // 追加并置为激活
var go = Pages.Close(url); // 关掉的可能是当前页
if (go != null) Nav.NavigateTo(go); // 返回值即需要导航过去的地址
API 参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Visible |
bool |
true |
取得或设置组件是否可见,默认为false。 |
VisibleChanged |
EventCallback<bool> |
— | 事件 取得或设置组件可见性变化时的回调事件。 |
Class |
string |
null |
取得或设置组件的CSS类名,用于自定义样式。 |
Disabled |
bool |
false |
取得或设置组件是否禁用,默认为false。 |
Style |
string |
null |
取得或设置组件的内联样式,用于自定义样式。 |
所有组件均继承
BaseComponent,除上表参数外还支持Class、Style、Disabled、Visible。
扫码关注公众号
扫码加入 QQ 群