SxNavBar UI 设计规范
自动生成时间: 2026-02-04 组件路径: src/NextUI.Blazor/Components/SxNavBar.razor
1. 组件概述
- 组件包含 15 个参数,0 个回调,2 个公开方法。
- 内部组合组件:SxAppGlobalMenu, SxButton, SxIcon, SxMenuButton, SxMenuItem, SxNavBar。
- 依赖注入: IJSRuntime JSRuntime, INavStackService Navigator, INextUILocalizer L。
- 实现接口: IAsyncDisposable。
2. 组件模式
| 模式 | 条件 | 说明 |
|---|---|---|
| 条件渲染 | ShowHamburger |
影响局部渲染块 |
| 条件渲染 | ShouldShowBackButton |
影响局部渲染块 |
| 条件渲染 | TitlePrefix != null |
影响局部渲染块 |
| 条件渲染 | TitleTemplate != null |
影响局部渲染块 |
| 条件渲染 | TitleSuffix != null |
影响局部渲染块 |
| 条件渲染 | Alignment == NavBarAlignment.Start && !string.IsNullOrEmpty(BackLabel |
影响局部渲染块 |
| 条件渲染 | QuickActionIcons != null && QuickActionIcons.Count > 0 |
影响局部渲染块 |
| 条件渲染 | ShowFunctionalMenu || _collapsedIcons.Any( |
影响局部渲染块 |
| 条件渲染 | _collapsedIcons.Any( |
影响局部渲染块 |
| 条件渲染 | FunctionalMenu != null |
影响局部渲染块 |
| 条件渲染 | OnNavigateHome.HasDelegate |
影响局部渲染块 |
| 条件渲染 | ShouldShowBackButton |
影响局部渲染块 |
3. 表单字段
| 字段组件 | 绑定 |
|---|---|
| - | - |
4. 操作按钮
| 外观 | 动作/链接 | 禁用条件 |
|---|---|---|
| ButtonAppearance.Stealth | OnToggleSidebar | - |
| ButtonAppearance.Stealth | HandleBack | - |
| ButtonAppearance.Stealth | - | - |
5. 验证规则
未检测到显式验证标记。
6. 状态与流程
内部状态字段: 未检测到明确状态字段。
7. 公共 API
7.1 Parameters
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
TitleText |
string |
"" | |
ToggleIcon |
string |
"bars" | |
IsSidebarMode |
bool |
false | |
ShowHamburger |
bool |
false | |
ShowFunctionalMenu |
bool |
true | |
EnableAppStack |
bool |
true | |
Alignment |
NavBarAlignment |
NavBarAlignment.Center | |
Appearance |
NavBarAppearance |
NavBarAppearance.Solid | |
Size |
ControlSize |
ControlSize.None | |
Sticky |
bool |
false | |
AllowTitleWrap |
bool |
false | |
MaxTitleLines |
int |
2 | |
TitleFontWeight |
int |
700 | |
MinVisibleQuickActions |
int |
0 | |
DebugLayout |
bool |
false |
7.2 Public Methods
OnLayoutUpdated:voidDisposeAsync:ValueTask
7.3 Events/Callbacks
无回调事件。
8. 典型使用场景 (Use Cases)
8.1 UC-1: 基础渲染
- 组件渲染默认状态
- 关键区域可见
- 无异常
9. 状态不变性测试 (State Invariants)
- 同一参数重复设置不应触发非必要 UI 改变
- 与表单字段无关的操作不应影响字段值
10. 测试检查点
-
IsSidebarMode为 true/false 时渲染差异正确 - 条件
ShowHamburger下渲染正确 - 条件
ShouldShowBackButton下渲染正确 - 条件
TitlePrefix != null下渲染正确 - 条件
TitleTemplate != null下渲染正确 - 条件
TitleSuffix != null下渲染正确 - 条件
Alignment == NavBarAlignment.Start && !string.IsNullOrEmpty(BackLabel下渲染正确 - 条件
QuickActionIcons != null && QuickActionIcons.Count > 0下渲染正确 - 条件
ShowFunctionalMenu || _collapsedIcons.Any(下渲染正确
11. Fluent UI 对齐
对应 Fluent UI Blazor 组件:FluentAppBar 源码:src/Core/Components/AppBar/FluentAppBar.razor(.cs) 对齐要点:
- 使用 FluentOverflow JS 计算溢出项并更新
AppsOverflow。 Orientation改变会重新初始化 Overflow。- 支持
Items或ChildContent两种构建方式。 关键参数/事件: PopoverShowSearch、PopoverVisibilityChanged、Orientation。 差异与扩展:- SxNavBar 需对齐 Overflow 初始化与搜索过滤逻辑。
12. 参考文档摘要
- docs/IDENTITY-DESIGN.md: NextUI 用户身份与认证设计方案 ## 一、问题分析
- docs/TECHNICAL_DEBT.md: 技术债与遗留问题 (Technical Debt & Legacy Issues) 本文件用于记录 NextUI 开发过程中为了快速交付或绕过环境限制而引入的硬编码、临时方案及待优化项。
- docs/ComponentAPIGuide.md: Next UI Component API Guide (Standard Interface) 本指南定义了 Next UI 组件的标准接口。我们的目标是 API 兼容优先,确保与 Microsoft Fluent UI Blazor 库的命名习惯对齐。
13. 规范合规检查
- 未检测到明显硬编码颜色/px。
14. 变更历史
- 2026-02-04: 深度分析填充规范。