mcpField
S
syncfusion-angular-tab

syncfusion-angular-tab

github.com/syncfusion开发0320 次安装1 周前更新
代码仓库

关于 syncfusion-angular-tab

syncfusion-angular-tab 是介绍 Syncfusion Angular Tab 组件的实现技能,面向构建 Angular 分栏界面的开发者。内容涵盖内容加载、响应式布局、动态标签、状态持久化和本地化。

主要功能

  1. 01支持多种标签内容渲染模式
  2. 02动态添加、删除和重排标签
  3. 03配置选择、键盘导航与事件
  4. 04自定义布局、样式和溢出模式
  5. 05持久化选择状态并支持本地化

适用场景

  1. 01组织设置面板和多步骤流程
  2. 02按需加载远程标签内容
  3. 03构建响应式的水平或垂直标签栏
  4. 04保存并恢复用户的标签选择

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/angular-ui-components-skills --skill syncfusion-angular-tab

安装后在 Claude Code 中输入/syncfusion-angular-tab确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
advanced-scenarios.md
content-management.md
customization-styling.md
drag-and-drop-reordering.md
getting-started.md
localization-and-orientation.md
rendering-modes.md
responsive-adaptive.md
selection-navigation.md
state-persistence-and-data-binding.md
troubleshooting.md
user-interaction.md

详细介绍

实现 Syncfusion Angular Tabs

Syncfusion Angular Tab 组件提供灵活、响应迅速的方式,可在选项卡界面中组织和显示内容。选项卡允许用户在多个内容面板之间切换,非常适合多步骤工作流、设置面板、导航结构和有序的数据展示。

何时使用此技能

  • 构建选项卡式导航: 将相关内容整理到不同选项卡中,方便切换
  • 多步骤工作流: 创建向导式体验或分步流程
  • 响应式布局: 使选项卡显示适配手机、平板电脑和桌面屏幕(不同方向)
  • 动态内容管理: 在运行时添加、删除、重新排序或拖放选项卡
  • 复杂应用: 在选项卡中集成 Grids、Charts、Calendars 和 Forms
  • 状态保留: 跨浏览器会话保存和恢复用户选择
  • 本地化应用: 支持多种语言的本地化 UI 文本
  • 多种方向: 根据布局需求使用垂直或水平的选项卡标题
  • 大型数据集: 从远程 API 或数据库加载选项卡
  • 自定义 UI: 设置标题、图标、动画、溢出模式和内容区域的样式
  • 用户偏好: 通过状态持久化记住上次选中的选项卡

导航指南

开始使用

📄 阅读: references/getting-started.md

  • 安装和设置软件包
  • Angular CLI 配置(独立模式与模块模式)
  • CSS 导入和主题设置
  • 三种渲染方法:JSON 项、ng-template、HTML 元素
  • 基本用法示例和最简设置
内容渲染模式

📄 阅读: references/rendering-modes.md

  • 按需(默认): 加载活动选项卡的内容,并保留状态
  • 动态: 优化内存,DOM 中仅保留单个内容
  • 初始化: 一次性加载所有内容,可在选项卡之间访问
  • 性能权衡和使用场景选择
  • 各种模式的代码示例
内容管理与数据

📄 阅读: references/content-management.md

  • DataSource 绑定和数据驱动的选项卡
  • 动态添加/删除选项卡(.addTab()、.removeTab())
  • AJAX 和服务器端内容加载
  • 动态显示/隐藏选项卡
  • 选项卡中的响应式表单(FormGroup、FormControl)
  • 使用 TemplateRef 重用内容
选项卡选择与导航

📄 阅读: references/selection-navigation.md

  • 选项卡选择事件(selecting、selected)
  • 以编程方式选择选项卡(.select() 方法)
  • 判断选择是由用户操作还是由程序触发(isInteracted)
  • 键盘导航(Tab 键、方向键、Enter/Space)
  • 点击处理程序和选择回调
自定义与样式

📄 阅读: references/customization-styling.md

  • 标题样式和 CSS 类(fill、background、accent)
  • 图标定位和图标 CSS 自定义
  • 内容高度管理和自动调整大小
  • 滚动步长配置
  • 动画控制和自定义动画
  • 高级样式的 CSS 自定义指南
  • 响应式标题显示
拖放重新排序

📄 阅读: references/drag-and-drop-reordering.md

  • 使用 allowDragAndDrop 属性启用拖放
  • 使用 dragArea 属性配置拖动区域
  • 处理 onDragStart、dragging、dragged 事件
  • 禁止拖动/放置特定选项卡
  • 在弹出式溢出模式下重新排序活动选项卡
  • 在多个 Tab 组件之间拖动项目
  • 将 Tab 项目拖动到外部组件(TreeView 等)
本地化与方向

📄 阅读: references/localization-and-orientation.md

  • 使用 locale 属性和 L10n 类本地化 UI 文本
  • 标题栏位置选项(Top、Bottom、Left、Right)
  • 溢出模式(Scrollable 或 Popup)
  • 使用 scrollStep 配置滚动速度
  • 根据屏幕尺寸响应式更改方向
  • 支持多语言和自定义翻译
状态持久化与数据绑定

📄 阅读: references/state-persistence-and-data-binding.md

  • 使用 enablePersistence 属性启用持久化
  • 自动将状态保存到浏览器 localStorage
  • 将选项卡绑定到数据源(数组、API、DataManager)
  • 从远程服务加载选项卡数据(OData、HTTP)
  • 通过 POST 请求加载选项卡内容
  • 将持久化与动态数据绑定结合使用
高级场景

📄 阅读: references/advanced-scenarios.md

  • 嵌套选项卡(多层选项卡内容)
  • 可折叠选项卡,具备类似手风琴的行为
  • 向导模式实现(步骤验证)
  • 使用 LocalStorage/SessionStorage 持久化状态
  • 通过事件初始化组件
  • 边缘情况与最佳实践
响应式与自适应行为

📄 阅读: references/responsive-adaptive.md

  • 针对受限空间进行自适应渲染
  • 溢出模式:Scrollable 和 Popup
  • 在移动设备和桌面设备上响应式显示选项卡
  • 更改方向(水平/垂直)
  • 防止在触摸设备上通过滑动选择
  • 宽度和高度限制
故障排查与最佳实践

📄 阅读: references/troubleshooting.md

  • 常见实现问题及解决方案
  • 性能优化技巧
  • 内容渲染注意事项
  • 状态管理陷阱
  • 无障碍功能与键盘支持
  • 动画性能
  • 从 EJ1 迁移到 EJ2

快速入门示例

包含多个内容面板的基本选项卡:

import { Component } from '@angular/core';
import { TabModule } from '@syncfusion/ej2-angular-navigations';

@Component({
  imports: [TabModule],
  standalone: true,
  selector: 'app-root',
  template: `
    <ejs-tab id="element">
      <e-tabitems>
        <e-tabitem [header]="headerText[0]" [content]="content0"></e-tabitem>
        <e-tabitem [header]="headerText[1]" [content]="content1"></e-tabitem>
        <e-tabitem [header]="headerText[2]" [content]="content2"></e-tabitem>
      </e-tabitems>
    </ejs-tab>
  `
})
export class AppComponent {
  public headerText: object[] = [
    { text: 'Home' },
    { text: 'Settings' },
    { text: 'Profile' }
  ];

  public content0 = 'Welcome to the home tab with your dashboard content.';
  public content1 = 'Configure application settings and preferences here.';
  public content2 = 'View and edit your user profile information.';
}

常见模式

模式 1:动态创建选项卡
// Add new tab at specific index
const newTab = { 
  header: { text: 'New Tab' }, 
  content: 'New content here' 
};
this.tabObj.addTab([newTab], 2);
模式 2:通过事件处理选择
// Handle tab selection changes
onTabSelected(args: SelectEventArgs) {
  console.log('Selected tab index:', args.selectedIndex);
  // Refresh data for selected tab
  this.loadDataForTab(args.selectedIndex);
}
模式 3:带图标的响应式选项卡标题栏
public headerText: object[] = [
  { text: 'Dashboard', iconCss: 'e-icons e-home' },
  { text: 'Products', iconCss: 'e-icons e-shopping-cart' },
  { text: 'Orders', iconCss: 'e-icons e-receipt' }
];
模式 4:选择内容渲染模式
// Use Dynamic mode for memory optimization
<ejs-tab 
  loadOn="Dynamic"  // Only active content in DOM
  heightAdjustMode="Auto">
</ejs-tab>
模式 5:键盘导航
// Tab component has built-in keyboard support
// Tab key - focus next header
// Arrow keys - navigate between tabs
// Enter/Space - activate tab
// Users can switch tabs without mouse

关键属性与方法

常用属性:

  • items - 选项卡项目集合
  • selectedIndex - 当前激活的选项卡索引
  • heightAdjustMode - 内容高度管理方式
  • loadOn - 内容渲染模式(Default、Dynamic、Init)
  • overflowMode - 溢出处理方式(Scrollable、Popup)
  • animation - 动画配置
  • allowDragAndDrop - 启用/禁用拖放(布尔值)
  • dragArea - 拖动边界的 CSS 选择器
  • reorderActiveTab - 从弹出窗口重新排序活动选项卡(布尔值)
  • headerPlacement - 标题栏位置(Top、Bottom、Left、Right)
  • enablePersistence - 保存/恢复状态(布尔值)
  • locale - 语言/区域代码(例如,'en-US'、'fr-FR')
  • scrollStep - 每次点击滚动的像素数

关键方法:

  • .select(index) - 以编程方式选择选项卡
  • .addTab(items, index) - 添加新选项卡
  • .removeTab(index) - 移除选项卡
  • .hideTab(index, hide) - 隐藏/显示选项卡(hide=true 表示隐藏,false 表示显示)
  • .refresh() - 刷新选项卡布局
  • .dataBind() - 更新数据绑定

重要事件:

  • selecting - 选项卡选择前
  • selected - 选项卡选择后
  • onDragStart - 开始拖动前(可取消)
  • dragging - 拖动过程中
  • dragged - 放置完成后(可取消)
  • created - 选项卡组件已初始化
  • destroyed - 选项卡组件已销毁

相关技能


下一步: 根据你的需求,阅读上方导航指南中的相应参考文件。

评论

支持 Markdown