鸿蒙(HarmonyOS)开发学习笔记免费分享,自学必备

101 阅读5分钟

一、鸿蒙自学笔记体系构建

1.1 科学的笔记框架设计

三栏式笔记模板

┌───────────────┬────────────────┬────────────────┐
│ 核心概念      │ 代码示例       │ 个人理解       │
│ (官方定义)    │ (关键片段)     │ (生活化类比)   │
└───────────────┴────────────────┴────────────────┘

笔记内容分类

  1. 基础理论:核心概念、语法规则、系统架构
  2. 实战技巧:组件使用、布局设计、状态管理
  3. 问题解决:错误日志、调试过程、解决方案
  4. 项目经验:需求分析、技术选型、优化思路

示例:ArkTS状态管理笔记

## @State装饰器

### 核心概念
- 组件内部状态管理
- 数据变化自动触发UI刷新
- 私有变量,外部不可直接访问

### 代码示例
```typescript
@State count: number = 0

Button('点击计数')
  .onClick(() => {
    this.count++
  })
Text(`当前计数: ${this.count}`)

个人理解

@State就像一个灵敏的温度计,温度变化时会自动更新显示。当count值改变时,所有使用count的UI组件都会自动刷新,不用手动操作DOM。


### 1.2 高效笔记整理方法

**康奈尔笔记法应用**- **主栏**:记录核心知识点和代码示例
- **侧栏**:提炼关键词和问题
- **底栏**:总结学习心得和待办事项

**标记系统**- 📌 重要概念
- 🔍 需要深入研究的内容
- ⚠️ 常见错误和注意事项
- ✅ 已掌握知识点
- ❓ 疑问点

**定期复习机制**- 每日回顾:10分钟快速浏览当天笔记
- 周末总结:整理本周重点,构建知识体系
- 月度复盘:查漏补缺,完善笔记内容

## 二、核心知识笔记精华

### 2.1 鸿蒙开发核心概念

**分布式能力**- **软总线**:设备间通信的"高速公路",支持多协议融合
- **分布式数据管理**:跨设备数据同步,像"家庭共享相册"一样便捷
- **分布式任务调度**:多设备协同完成复杂任务,如同"团队协作办公"

**应用模型对比**:
| 特性 | Stage模型 | FA模型 |
|------|----------|--------|
| 架构 | 单进程多Ability | 多进程架构 |
| 开发语言 | ArkTS | Java/JS |
| 内存占用 | 低(共享内存) | 高(独立进程) |
| 扩展性 | 强(ExtensionAbility) | 有限 |
| 适用场景 | 新应用开发 | 旧应用迁移 |

### 2.2 声明式UI核心语法

**UI描述方式**```typescript
// 声明式UI(鸿蒙)
Column() {
  Text('Hello World')
    .fontSize(30)
  Button('点击我')
    .onClick(() => {})
}
.width('100%')
.height('100%')

常用布局容器

  • Column:垂直排列,像"书架上的书"一样从上到下排列
  • Row:水平排列,如同"水平摆放的餐具"
  • Stack:层叠布局,类似"墙上的照片墙"
  • List:列表布局,适合"通讯录"等长列表展示

状态管理装饰器

  • @State:组件内部状态,如同"个人日记"
  • @Prop:父子组件单向传值,类似"明信片"
  • @Link:父子组件双向绑定,像"对讲机"一样双向通信
  • @Provide/@Consume:跨组件通信,如同"广播系统"

三、免费学习资源汇总

3.1 社区资源

文档与教程

鸿蒙开发燾啊的动态 - 哔哩哔哩

开发工具

  • DevEco Studio:鸿蒙官方IDE,支持代码提示、调试、模拟器
  • 远程模拟器:无需本地配置,直接在线调试
  • HUAWEI DevEco Testing:自动化测试工具

3.2 社区优质资源

视频教程

开源项目

  • 官方示例代码集合
  • 完整项目源码
  • 跨平台UI框架

四、笔记整理工具推荐

4.1 数字笔记工具

Notion

  • 优势:支持Markdown、数据库功能、多设备同步
  • 模板推荐:知识管理看板、学习进度追踪表
  • 使用技巧:利用数据库功能管理学习资源

Obsidian

  • 优势:本地存储、双向链接、知识图谱
  • 插件推荐:思维导图、图表生成、代码高亮
  • 使用技巧:建立笔记间的关联,构建知识网络

VS Code + Markdown插件

  • 优势:代码与笔记无缝切换、丰富的Markdown插件
  • 推荐插件:Markdown Preview Enhanced、Paste Image
  • 使用技巧:利用代码片段功能快速插入常用笔记模板

4.2 思维导图工具

XMind

  • 应用场景:梳理知识体系、规划学习路径
  • 模板推荐:鸿蒙开发知识地图、项目架构图
  • 示例:鸿蒙开发核心技术思维导图

MindNode

  • 优势:简洁易用、支持iCloud同步
  • 适用场景:快速整理知识点间的关系
  • 技巧:使用标签功能对知识点分类

五、实战项目笔记范例

5.1 待办事项应用开发笔记

需求分析

## 待办事项应用需求分析

### 核心功能
- 添加待办事项(标题、内容、截止日期)
- 标记完成状态
- 删除待办事项
- 数据持久化存储

### 技术选型
- UI框架:ArkUI声明式UI
- 状态管理:@State + @Link
- 数据存储:Preferences
- 布局容器:List + Column + Row

### 开发计划
1. 界面设计(2天)
2. 核心功能开发(3天)
3. 数据持久化(1天)
4. 测试优化(1天)

关键代码笔记

## 待办列表实现

### 核心代码
```typescript
@State todos: TodoItem[] = []

List() {
  LazyForEach(this.todos, (item) => {
    ListItem() {
      TodoItemComponent({
        todo: item,
        onDelete: () => this.deleteTodo(item.id),
        onToggle: () => this.toggleTodo(item.id)
      })
    }
  })
}
.onPullRefresh(() => {
  this.loadTodos()
})

// 数据加载函数
async loadTodos() {
  try {
    // 从Preferences加载数据
    const data = await this.preferences.get('todos', '[]')
    this.todos = JSON.parse(data)
  } catch (e) {
    console.error('加载待办失败', e)
  } finally {
    // 停止下拉刷新
    this.finishPullRefresh()
  }
}

问题与解决方案

  • 问题:列表滑动卡顿解决方案:使用LazyForEach替代ForEach,实现懒加载
  • 问题:数据刷新不及时解决方案:确保修改数组时创建新数组触发UI更新