| Name | Date | Size | #Lines | LOC | ||
|---|---|---|---|---|---|---|
| .. | - | - | ||||
| AppScope/ | 22-Oct-2025 | - | 46 | 43 | ||
| entry/ | 22-Oct-2025 | - | 3,515 | 3,331 | ||
| hvigor/ | 22-Oct-2025 | - | 50 | 48 | ||
| .gitignore | D | 22-Oct-2025 | 133 | 12 | 12 | |
| README.md | D | 22-Oct-2025 | 4.9 KiB | 102 | 81 | |
| build-profile.json5 | D | 22-Oct-2025 | 2 KiB | 68 | 67 | |
| code-linter.json5 | D | 22-Oct-2025 | 2.2 KiB | 58 | 57 | |
| hvigorfile.ts | D | 22-Oct-2025 | 1.5 KiB | 33 | 5 | |
| oh-package.json5 | D | 22-Oct-2025 | 1.5 KiB | 37 | 35 | |
| ohosTest.md | D | 22-Oct-2025 | 1.6 KiB | 10 | 8 |
README.md
1# 组件复用示例 2 3### 介绍 4 51.主页实现图文混排组件复用场景; 62.实现日历场景的组件复用,属于高负载刷新的组件复用场景; 7 8### 效果预览 9 10效果如下所示: 11 12|主界面|列表二级联动|自定义日历选择器|跨文件样式复用和组件复用|合理处理高负载组件的渲染文章示例代码| 13|--------------------------------|--------------------------------|--------------------------------|--------------------------------|--------------------------------| 14|||||| 15 16使用说明 17 181. 在主界面,点击蓝色按钮"列表二级联动"。 19 * 滑动二级列表侧控件,一级列表随之滚动。 20 * 点击一级列表,二级列表随之滚动。 212. 在主界面,点击蓝色按钮"自定义日历选择器"。 22 * 点击购物车页面的list列表跳转商品详情页。 233. 在主界面,点击蓝色按钮"跨文件样式复用和组件复用"。 24 * 加载完成后显示主界面,点当前日期后会显示日历选择器,选择日期后会关闭日历选择器,主页面日期会变成选定的日期。 254. 在主界面,点击蓝色按钮"合理处理高负载组件的渲染文章示例代码"。 26 * 加载10年的日历数据。 27 28 29### 工程目录 30 31``` 32entry/src/main/ets/ 33|---pages 34| |---Example1 35| | |---DataType.ets // 数据类型定义 36| | |---Example1.ets 37| | |---SecondaryLinkExample.ets // 二级联动功能实现页面 38| |---Example2 39| | |---components 40| | | |---DateModel.ets // 数据类型定义 41| | | |---GetDate.ets // 获取日期信息 42| | | |---MonthDataSource.ets // 数据类型定义 43| | |----view 44| | | |---CalendarView.ets // 场景主页面 + 自定义日历 45| | |---Example2.ets 46| |---Example3 47| | |---components 48| | | |---CommonText.ets // 自定义组件封装 49| | | |---LazyForEach.ets // 懒加载 50| | |----view 51| | | |---Details.ets // 页面:详情页 52| | | |---ShoppingCart.ets // 页面:购物车 53| | |---Example3.ets 54| |---Example4 55| | |---GetDate.ets // 获取日期信息 56| | |---MonthDataSource.ets // 懒加载数据类型 57| | |---Example4.ets 58| | |---ReusePage.ets // 正常加载数据的页面 59| |---index.ets // 首页 60``` 61 62### 具体实现 63 64* Example1(列表二级联动) 源码参考: [Example1](entry/src/main/ets/pages/Example1) 65 * 构造懒加载数据源类型[MyDataSource](entry/src/main/ets/pages/Example1/DataType.ets) 66 * 一二级列表分别绑定不同的Scroller对象,一级列表(tagLists)绑定classifyScroller对象,二级列表绑定scroller对象。 67 * 通过循环,构造一二级列表数据。 68 * 点击一级列表后,通过一级列表的索引获取二级列表的索引,调用scrollToIndex方法将一二级列表滚动到指定索引值。 69 * 通过二级列表索引获取一级列表索引,调用scrollToIndex方法将一级列表滚动到指定索引值。 70* Example2(自定义日历选择器) 源码参考: [Example2](entry/src/main/ets/pages/Example2) 71 * 获取当前月和下个月的日期信息。源码参考[GetDate.ets](entry/src/main/ets/pages/Example2/components/GetDate.ets) 72 * 通过Flex类初始化自定义日历界面。源码参考[CalendarView.ets](entry/src/main/ets/pages/Example2/view/CalendarView.ets)。 73* Example3(跨文件样式复用和组件复用) 源码参考: [Example3](entry/src/main/ets/pages/Example3) 74 * 使用了自定义封装的Image+Text的图文复合组件[ImageText](entry/src/main/ets/pages/Example3/common/CommonText.ets) 75* Example4(合理处理高负载组件的渲染文章示例代码) 源码参考: [Example4](entry/src/main/ets/pages/Example4) 76 * 通过组件复用,加载10年的日历数据。源码参考:[ReusePage.ets](entry/src/main/ets/pages/Example4/ReusePage.ets) 77 78### 相关权限 79 80无 81 82### 依赖 83 84无 85 86### 约束与限制 87 881. 本示例仅支持标准系统上运行,支持设备:Phone; 892. 本示例为Stage模型,支持API20版本SDK,SDK版本号(API Version 20),镜像版本号(5.0.1.5)。 903. 本示例需要使用DevEco Studio 版本号(6.0.0.6)版本才可编译运行。 91 92### 下载 93 94如需单独下载本工程,执行如下命令: 95 96``` 97git init 98git config core.sparsecheckout true 99echo code/ArkTS1.2/ComponentSample/ > .git/info/sparse-checkout 100git remote add origin https://gitee.com/openharmony/applications_app_samples.git 101git pull 102```