关于 syncfusion-javascript-listview
面向开发者的 TypeScript 技能,指导在数据驱动界面中实现 Syncfusion ListView,涵盖数据绑定、选择、嵌套导航、自定义和虚拟滚动等功能。
主要功能
- 01本地和远程数据绑定
- 02单选、多选与复选框选择
- 03嵌套列表和逐级导航
- 04分组、筛选与搜索
- 05模板、事件与虚拟滚动
适用场景
- 01构建可搜索的联系人列表
- 02逐级展示层级数据
- 03通过虚拟滚动呈现大型列表
- 04创建聊天或任务列表界面
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ syncfusion/ javascript-ui-controls-skills --skill syncfusion-javascript-listview安装后在 Claude Code 中输入/syncfusion-javascript-listview确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/advanced-features.mdapi-reference.mddata-binding.mdevents-state-management.mdgetting-started.mdgrouping-filtering.mdnested-lists-navigation.mdselection-interactions.mdstyling-customization.mdtemplates-rendering.mduse-case-examples.md详细介绍
实现 Syncfusion TypeScript ListView
何时使用此技能
在以下情况下使用此技能:
- 使用动态数据(本地、远程或基于 API)创建列表
- 显示分层/嵌套列表结构
- 实现多选或基于复选框的选择
- 添加分组、筛选或搜索功能
- 构建交互式 UI 组件(聊天窗口、联系人列表、数据表格)
- 为列表项应用自定义模板和样式
- 启用虚拟滚动、拖放、动画或分页等高级功能
- 处理列表事件(选择、滚动、操作)
组件概览
Syncfusion ListView 是一款功能丰富、高性能的列表组件,可用于显示数据,并支持:
- 数据绑定:本地数组、远程 API、动态数据
- 选择:单选、多选或基于复选框的选择
- 模板:自定义项、页眉和分组模板
- 嵌套:支持下钻导航的分层结构
- 组织:对可搜索的数据集进行分组和筛选
- 性能:虚拟滚动,针对大型数据集进行高效渲染
- 交互性:拖放、动画、事件、自定义样式
- 无障碍功能:符合 WCAG 标准、键盘导航、ARIA 支持
文档与导航指南
入门
📄 阅读: references/getting-started.md
- 安装和软件包设置
- 基本的 ListView 实现
- CSS 导入和主题配置
- 首次渲染和最简可运行示例
- TypeScript 项目设置
数据绑定与数据源
📄 阅读: references/data-binding.md
- 本地数组数据源
- 使用 DataManager 绑定远程 API 数据
- 动态数据加载和刷新
- 查询构建器和 OData 支持
- 实际数据绑定模式
模板与渲染
📄 阅读: references/templates-rendering.md
- 项目模板(单行、多行、自定义 HTML)
- 用于自定义页眉的页眉模板
- 带样式的分组模板
- 动态切换模板
- 模板最佳实践和模式
选择与交互
📄 阅读: references/selection-interactions.md
- 单项选择
- 使用复选框或 Ctrl+单击进行多选
- 复选框配置和定位
- 启用/禁用项目
- 切换项目可见性
- 选择事件和回调
嵌套列表与导航
📄 阅读: references/nested-lists-navigation.md
- 分层数据结构
- 嵌套列表导航和下钻
- 在不同层级之间返回导航
- 面包屑模式
- 动态层级结构
分组与筛选
📄 阅读: references/grouping-filtering.md
- 按类别或字段对项目分组
- 自定义分组页眉模板
- 在分组页眉中显示项目数量
- 搜索和筛选实现
- 实时筛选模式
样式与自定义
📄 阅读: references/styling-customization.md
- CSS 类自定义
- 应用主题(Material、Fabric、Bootstrap)
- 从右到左(RTL)语言支持
- 自定义样式和 CSS 变量
- 响应式设计模式
事件与状态管理
📄 阅读: references/events-state-management.md
- 可用事件(选择、滚动、操作开始/完成)
- 事件处理和回调
- 事件参数和数据
- 状态跟踪和管理
- 常见事件模式
高级功能
📄 阅读: references/advanced-features.md
- 面向大型数据集的虚拟滚动
- 分页和分页功能集成
- 拖放功能
- 动画效果和过渡
- 持久化和状态恢复
- 性能优化技巧
真实场景示例与用例
📄 阅读: references/use-case-examples.md
- 聊天窗口 UI 实现
- 联系人列表布局
- 待办事项/任务列表应用
- 双列表管理器
- 移动端联系人布局
- 使用 ListView 实现类似网格的布局
完整 API 参考
📄 阅读: references/api-reference.md
- 所有 ListView 属性及其类型和默认值
- 完整的方法文档及参数
- 事件定义及其参数结构
- 类型定义和枚举
- 配置接口
- 每个主要 API 项的用法示例
快速入门示例
import { ListView, ListViewComponent } from '@syncfusion/ej2-lists';
import { DataBind } from '@syncfusion/ej2-base';
// Basic ListView with local data
const listViewInstance = new ListView({
dataSource: [
{ id: '1', text: 'Item 1' },
{ id: '2', text: 'Item 2' },
{ id: '3', text: 'Item 3' }
],
fields: { id: 'id', text: 'text' }
});
listViewInstance.appendTo('#element');
常见模式
模式 1:带选择功能的基本列表
const listView = new ListView({
dataSource: ['Apple', 'Banana', 'Cherry'],
select: (args) => {
console.log('Selected:', args.data);
}
});
listView.appendTo('#list');
模式 2:带复选框的多选
const listView = new ListView({
dataSource: data,
showCheckBox: true,
fields: { text: 'Name', id: 'Id', isChecked: 'Checked' }
});
listView.appendTo('#list');
模式 3:嵌套列表导航
const listView = new ListView({
dataSource: hierarchicalData,
fields: { text: 'text', id: 'id', child: 'child' },
select: (args) => {
if (args.data.child) {
// Navigate to child list
}
}
});
listView.appendTo('#list');
模式 4:分组列表
const listView = new ListView({
dataSource: data,
fields: { text: 'Name', groupBy: 'Category', id: 'Id' }
});
listView.appendTo('#list');
核心功能一览
| 功能 | 描述 | 参考 |
|---|---|---|
| 数据绑定 | 连接到本地/远程数据源 | data-binding.md |
| 模板 | 自定义项目、标题和分组的外观 | templates-rendering.md |
| 选择 | 单选、多选或复选框模式 | selection-interactions.md |
| 嵌套 | 分层下钻导航 | nested-lists-navigation.md |
| 分组 | 按类别整理项目 | grouping-filtering.md |
| 筛选 | 动态搜索和筛选项目 | grouping-filtering.md |
| 样式 | 主题和自定义选项 | styling-customization.md |
| 事件 | 处理用户交互 | events-state-management.md |
| 虚拟化 | 高效渲染大型数据集 | advanced-features.md |
| 拖放 | 使用鼠标重新排列项目 | advanced-features.md |
性能提示
- 对包含 1000+ 个项目的列表启用虚拟化
- 对大型数据集使用远程数据并启用延迟加载
- 对筛选器进行防抖处理,避免过度重新渲染
- 通过尽量减少 DOM 复杂度来优化模板
- 对静态分组缓存分组标题
浏览器支持
- Chrome(最新版)
- Firefox(最新版)
- Safari(最新版)
- Edge(最新版)
- IE 11+
依赖项
@syncfusion/ej2-lists
@syncfusion/ej2-base
@syncfusion/ej2-data
后续步骤
- 从入门指南开始 - 设置你的第一个 ListView
- 选择数据源 - 根据你的用例使用 data-binding.md
- 自定义外观 - 应用 templates-rendering.md 中的模板
- 添加交互功能 - 实现选择和事件
- 探索高级功能 - 虚拟化、拖放、动画
- 查阅 API - 查看 api-reference.md 获取完整文档
如需详细的实现指南,请参阅上方的参考文件。每个文件都专注于一个特定方面,并包含来自 utils/code-snippet/listview 文件夹的完整代码示例。
评论
支持 Markdown