Promise 从入门到进阶:核心概念、状态机制与实战 API 解析
2026/8/7 12:50:31
待办事项(Todo List)是一款功能完整的任务管理应用。支持任务的增删改查、分类筛选、优先级设置和进度统计。该应用深入展示了ArkTS框架中的CRUD操作、列表渲染、筛选排序和本地数据持久化技术。
| 功能模块 | 功能描述 | 技术实现 |
|---|---|---|
| 任务管理 | 增删改查任务 | 数组操作 |
| 分类筛选 | 按状态/优先级筛选 | 条件过滤 |
| 搜索功能 | 按关键词搜索 | 字符串匹配 |
| 优先级 | 高/中/低三级 | 状态枚举 |
| 进度统计 | 完成率统计 | 数据聚合 |
| 数据持久化 | 本地存储 | Preferences |
interfaceTodoItem{id:number;text:string;done:boolean;priority:'高'|'中'|'低';date:string;category:string;note:string;}@Statetodos:TodoItem[]=[];addTodo(text:string,priority:string):void{this.todos.push({id:Date.now(),text:text,done:false,priority:priority,date:newDate().toISOString().split('T')[0],category:'默认',note:''});this.saveData();}updateTodo(id:number,updates:Partial<TodoItem>):void{constindex=this.todos.findIndex(t=>t.id===id);if(index>=0){this.todos[index]={...this.todos[index],...updates};this.saveData();}}deleteTodo(id:number):void{this.todos=this.todos.filter(t=>t.id!==id);this.saveData();}getfilteredTodos():TodoItem[]{letresult=[...this.todos];if(this.filterType!=='全部'){result=result.filter(t=>this.filterType==='已完成'?t.done:!t.done);}if(this.searchQuery){result=result.filter(t=>t.text.includes(this.searchQuery));}result.sort((a,b)=>{constpriorityOrder={'高':0,'中':1,'低':2};returnpriorityOrder[a.priority]-priorityOrder[b.priority];});returnresult;}getStats():TodoStats{consttotal=this.todos.length;constdone=this.todos.filter(t=>t.done).length;consthighPriority=this.todos.filter(t=>t.priority==='高').length;consttoday=this.todos.filter(t=>t.date===this.getToday()).length;return{total,done,pending:total-done,completionRate:total>0?Math.round(done/total*100):0,highPriority,today};}