做网站需学什么条件对网站建设的意见和建议

张小明 2026/1/9 21:52:58
做网站需学什么条件,对网站建设的意见和建议,济南做网站找泉诺,怎样做网络推广赚钱在上一篇《HarmonyOS 教学实战#xff08;二#xff09;》中#xff0c;我们已经让应用具备了#xff1a;网络请求本地缓存离线兜底完整 Store 设计但只要你的数据一多#xff0c;列表就一定是性能重灾区。真实项目中#xff0c;80% 的卡顿都来自#xff1a;❌ 列表一次…在上一篇《HarmonyOS 教学实战二》中我们已经让应用具备了网络请求本地缓存离线兜底完整 Store 设计但只要你的数据一多列表就一定是性能重灾区。真实项目中80% 的卡顿都来自❌ 列表一次性加载❌ 下拉刷新逻辑混乱❌ 滚动时频繁重建组件这一篇我们专门解决这些问题。一、这一篇我们要解决哪些真实痛点围绕一个真实列表页面完成 3 件事 列表分页加载上拉加载更多 下拉刷新重新请求第一页 列表性能优化可复用组件 状态收敛完成后你的列表会具备数据多也不卡、刷新快、滚动顺二、先改接口支持分页返回假设后端接口升级为GET /api/tasks?page1pageSize10返回格式{ list: [ { id: 101, title: 学习 HarmonyOS } ], hasMore: true }三、第一步升级网络 Service分页支持修改service/TaskService.etsexport interface PageResultT { list: T[] hasMore: boolean } export class TaskService { static async fetchTasks( page: number, pageSize: number ): PromisePageResultTask { const httpRequest http.createHttp() const response await httpRequest.request( https://example.com/api/tasks?page${page}pageSize${pageSize}, { method: http.RequestMethod.GET } ) const data JSON.parse(response.result as string) return { list: data.list.map(item new Task(item.id, item.title)), hasMore: data.hasMore } } }四、第二步升级 Store分页核心逻辑分页的核心逻辑必须放在 Store而不是 UI。修改model/TaskModel.etsObservedV2 export class TaskStore { tasks: Task[] [] page: number 1 pageSize: number 10 hasMore: boolean true loading: boolean false refreshing: boolean false async refresh() { if (this.refreshing) return this.refreshing true this.page 1 const result await TaskService.fetchTasks(this.page, this.pageSize) this.tasks result.list this.hasMore result.hasMore this.refreshing false } async loadMore() { if (!this.hasMore || this.loading) return this.loading true this.page const result await TaskService.fetchTasks(this.page, this.pageSize) this.tasks this.tasks.concat(result.list) this.hasMore result.hasMore this.loading false } }教学重点refresh()只管第一页loadMore()只管追加UI 只需要调用不参与逻辑判断五、第三步页面中接入下拉刷新 上拉加载修改pages/Index.etsComponentV2 struct Index { Local store new TaskStore() Once async init() { await this.store.refresh() } build() { Column() { Refresh({ refreshing: this.store.refreshing }) { List() { ForEach(this.store.tasks, (item: Task) { TaskItem({ task: item, onDelete: () {} }) }, item item.id.toString()) if (this.store.hasMore) { ListItem() { Text(this.store.loading ? 加载中... : 上拉加载更多) .onAppear(() this.store.loadMore()) } } } } } } }onAppear是分页加载的关键 不需要监听滚动位置 非常稳定六、第四步列表性能优化重点1️⃣ 使用 ReusableV2 优化列表项ReusableV2 ComponentV2 export struct TaskItem { Param task: Task Event onDelete: (id: number) void build() { Row() { Text(this.task.title) Button(删除) .onClick(() this.onDelete(this.task.id)) } } } ArkUI 会自动复用组件结构 滚动时不会频繁销毁/重建2️⃣ 避免 ListItem 中使用 Local 状态❌ 错误示例Local checked false会导致每个 Item 都维护自己的状态极易卡顿。✔ 正确做法状态上移到 Store 或 Model3️⃣ 控制刷新粒度状态收敛避免这样的写法Local store new TaskStore() // 整个 store 变 → 全列表刷新更优方式是列表只依赖tasksloading 状态放在 footer七、第五步缓存 分页怎么配合推荐策略场景行为首次进入读缓存 → 再 refresh下拉刷新丢弃缓存上拉加载不写缓存退出页面保存当前列表 不要每一页都缓存 缓存的是“可用数据”不是“中间态”八、常见分页性能坑必看❌ 坑 1List Column 嵌套会导致全部子项提前创建✔ 用 List ListItem❌ 坑 2key 不稳定key index // 非常危险✔ 使用业务 id❌ 坑 3刷新 加载同时进行✔ Store 中用标志位严格限制九、现在你的 App 已经是“工业级列表”了你已经具备✔ 分页加载✔ 下拉刷新✔ 状态隔离✔ 高性能列表✔ 可扩展 Store 结构这已经是90% 商业 App 列表的实现水平。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

个人在线网站推广嵌入式开发是什么专业

GitHub Gist分享代码片段:快速交流PyTorch技巧 在深度学习项目开发中,你是否经历过这样的场景?同事发来一段“高效训练技巧”的代码,你兴冲冲地复制粘贴运行,结果却卡在了 torch.cuda.is_available() 返回 False&#…

张小明 2026/1/8 16:04:12 网站建设

外贸优化网站制作网盟推广平台

你是不是也曾经为了配置ADB环境而头疼不已?😫 手动下载SDK、配置环境变量、安装USB驱动...这套流程下来,没有半小时根本搞不定。更让人崩溃的是,好不容易装好了,换个电脑又要重来一遍! 【免费下载链接】Lat…

张小明 2026/1/9 0:34:08 网站建设

建立网站导航栏的方法做emc的有哪些网站

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2026/1/8 10:20:23 网站建设

龙华app网站开发重庆网络科技公司有哪些

很多人都期待,智能汽车能成为中国在新一轮科技浪潮中的关键产业支点。但要真正实现这一目标,靠的不是某一家企业的单点突破,而是整个产业能否构建起一套体系化、高水平的技术生态。回看PC时代,Wintel联盟之所以能主导全球市场&…

张小明 2026/1/8 9:11:37 网站建设

汽车工厂网站建设用dw代码做美食网站

YOLOv8镜像上线,Docker一键拉取开启目标检测新体验 在智能摄像头自动识别行人、工厂流水线实时检测缺陷、无人机视觉导航等场景背后,目标检测技术正悄然改变着我们与物理世界的交互方式。而在这场视觉革命中,YOLO(You Only Look O…

张小明 2026/1/8 0:35:11 网站建设

新开的公司建立网站有哪些要做的优衣库的网络营销方式

Sh 编程入门指南(上) 1. 引言 在编程的世界里,Sh 编程是一项非常实用的技能。它可以帮助我们自动化各种任务,提高工作效率。本文将深入介绍 Sh 编程的各个方面,包括 Sh 脚本的基本概念、与 C 程序的对比、命令行参数的使用、变量的定义和引用、引号的使用、语句和命令的…

张小明 2026/1/10 1:42:24 网站建设