aurora blog
  • JS

    • 基本汇总
    • Date时间
    • Array方法
    • String 方法
    • Object方法
    • RegExp正则
    • Es6 新特性等
    • Event-Loop
    • Http and Https
    • for in和for of区别
    • Web Worker
    • Promise && async
    • 堆内存 & 栈内存
    • JS设计模式探索
    • npm & yarn
    • Fetch和Axios的区别
    • 学习及面试问题整理
    • URL 输入到页面加载过程
    • 跨域&nginx本地项目代理
  • FE框架

    • react

      • 基本用法
      • react生命周期
      • hooks 16.8版本后
      • Route原理
      • Redux源码解析
      • React16 Fiber
      • React-VirtualDOM
      • React事件委托机制
      • React性能优化
      • 状态管理方案对比
      • React 18新特性
    • vue

      • vue 基本用法
      • vue 生命周期
      • VirtualDOM
      • vue 事件委托
      • vue 架构
      • vue 状态管理
      • 问题等
    • React-Native

      • React-Native 基本用法
    • 微前端

      • 遇到的问题
    • 鸿蒙 harmony

      • harmony 基础
  • 构建工具

    • webpack

      • Webpack配置详解
      • Webpack的使用
      • Babel-polyfill
      • webpack面试题
    • vite

      • vite配置详解
      • vite面试题
    • rollup

      • Rollup配置详解
      • rollup面试题
    • 构建工具对比
  • 性能优化

    • 性能优化策略
    • 缓存策略
    • 性能优化面试题
  • 浏览器

    • 浏览器渲染原理
    • 浏览器缓存机制
    • 浏览器面试题
  • 工程化

    • 代码规范
    • 工程化面试题
  • 前端安全

    • XSS 攻击与防护
    • CSRF 攻击与防护
    • 前端安全面试题
  • 移动端开发

    • 移动端适配
    • 移动端开发面试题
  • 前端监控

    • 错误监控
    • 性能监控
    • 前端监控面试题
  • Typescript

    • Typescript详解
  • Servers

    • Nodejs
    • Nginx
  • Git命令

    • git常用规范
  • 数据库

    • mongodb
    • mongodb
  • Other

    • Jenkins自动化部署

HarmonyOS 基础用法整理

  • 1. 页面结构与组件
  • 2. 状态管理
  • 3. 事件绑定
  • 4. 条件渲染与列表渲染
  • 5. 生命周期
  • 6. 样式设置
  • 7. 路由跳转

1. 页面结构与组件

  • HarmonyOS 采用 ArkUI(JS/TS/ETS)进行页面开发,常用组件有:<div>, <text>, <image>, <button> 等。
  • 页面文件通常包含三部分:结构(.ets/.js)、样式(.css)、逻辑(.ets/.js)。

示例:

// index.ets
@Entry
@Component
struct MyPage {
  build() {
    Column() {
      Text('Hello HarmonyOS')
      Button('点击我')
        .onClick(() => {
          // 事件处理
        })
    }
    .width('100%')
    .height('100%')
  }
}

2. 状态管理

  • 使用 @State 修饰符声明响应式数据,数据变化自动刷新视图。
@Entry
@Component
struct Counter {
  @State count: number = 0

  build() {
    Column() {
      Text(`计数:${this.count}`)
      Button('加一').onClick(() => {
        this.count++
      })
    }
  }
}

3. 事件绑定

  • 通过 .onClick、.onChange 等方法绑定事件。
Button('提交').onClick(() => {
  // 处理点击事件
})

4. 条件渲染与列表渲染

  • 条件渲染:使用三元表达式或 if 语句。
  • 列表渲染:使用 ForEach 组件。
@State items: string[] = ['A', 'B', 'C']

build() {
  Column() {
    ForEach(this.items, (item) => {
      Text(item)
    })
  }
}

5. 生命周期

  • 组件支持生命周期方法,如 aboutToAppear、aboutToDisappear。
aboutToAppear() {
  // 页面显示时执行
}
aboutToDisappear() {
  // 页面隐藏时执行
}

6. 样式设置

  • 使用链式调用设置样式,如 .width(), .height(), .fontSize(), .backgroundColor()。
Text('标题')
  .fontSize(20)
  .fontWeight(FontWeight.Bold)
  .backgroundColor('#f5f5f5')

7. 路由跳转

  • 使用 router.pushUrl() 进行页面跳转。
Button('跳转').onClick(() => {
  router.pushUrl({ url: 'pages/detail' })
})
最近更新:: 2025/8/7 15:46
Contributors: liyulai