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: void
  • DisposeAsync: ValueTask

7.3 Events/Callbacks

无回调事件。

8. 典型使用场景 (Use Cases)

8.1 UC-1: 基础渲染

  1. 组件渲染默认状态
  2. 关键区域可见
  3. 无异常

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。
  • 支持 ItemsChildContent 两种构建方式。 关键参数/事件:
  • PopoverShowSearchPopoverVisibilityChangedOrientation。 差异与扩展:
  • 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: 深度分析填充规范。