信息流、商品列表、聊天记录——长列表是几乎所有应用的主战场。在鸿蒙里,列表开发的核心是 List、Grid 和 LazyForEach 的组合使用。
List:纵向列表
List 是基础的滚动列表组件,ListItem 是每一项。列表项可以是文本、图片或任意组件组合,通过 ForEach 循环渲染数据。
List 支持滚动、滑动删除、粘性头等能力,配合 ListItemGroup 可以做分组列表(通讯录按字母分组)。

Grid:网格布局
Grid 用于网格布局:商品九宫格、照片墙。通过 columnsTemplate 定义列数和宽度,GridItem 是格子。网格支持瀑布流布局,适合图文混排场景。
Grid 和 List 可以互相嵌套,实现复杂页面(顶部网格+下方列表)。
LazyForEach:性能关键
数据量大时,千万别用 ForEach 一次性渲染所有项,要用 LazyForEach:按需创建可视区域的组件,滚动时回收不可见的项,内存和性能都大幅提升。
LazyForEach 需要提供数据源和键值生成器,键值要稳定唯一,否则会出现渲染错乱。

列表性能优化
几个实用技巧:固定列表项高度(减少计算);图片懒加载(可视再加载);避免列表项里放重型组件;数据分页加载,配合滚动到底加载更多。
性能问题用 DevEco 的 Profiler 工具定位,别凭感觉优化。
实战建议
先做一个小型列表页(比如待办列表)练手:数据模型、LazyForEach 渲染、点击跳转、删除动画,一条龙做下来,列表开发基本就掌握了。
列表是应用的门面,也是性能的试金石。把 List、Grid、LazyForEach 用熟,你的应用就有了“能扛流量”的底气。