IMAU鸿蒙北向开发-2023年9月5日学习日志

news/2024/7/21 11:17:40 标签: harmonyos, 学习, 华为

1. 5种调试方式

1.1 Previewer

在侧边 Previewer 选项卡内可以预览Entry。
如果要单独预览组件,可以在给组件加@Preview 装饰器

在这里插入图片描述

1.2 Local Emulator(本地模拟)

在这里插入图片描述

1.3 Remote Emulator(远程模拟)

在这里插入图片描述
使用时需要登录华为开发者账号。

1.4 Remote Device (远程真机)

在这里插入图片描述

在这里插入图片描述
上图分别对应Local Emulator、Remote Emulator、Remote Device

1.5 本地真机

2. 属性方法和事件方法

在这里插入图片描述
在这里插入图片描述

@Entry // 将这个组件作为入口
@Component // @Component 加上 struct 关键字来定义一个组件
struct Index {
  @State message: string = 'Hello World'

  build() {
    Column({space: 5}) {
      Text('Hello Harmony!')
        .fontColor(Color.Red) // 设置属性方法
        .fontSize(30)
      Button()
        .fontColor(Color.Black)
        .onClick(() => { // 设置事件方法
          console.info("-----> button is clicked")
        })
      Component1()
    }
  }
}

3. 源码简要分析

在这里插入图片描述

4. UI动态更新

@State 装饰器是 HaromonyOS 中用来标识状态变量的装饰器。使用 @State 装饰器可以将变量标记为状态变量,并且在变量值发生改变时可以自动触发组件的重新渲染,从而保持界面与状态的一致性。

具体来说,使用 @State 装饰器会将变量标记为响应式变量,在变量值发生改变时,会通过调用 setState 方法来触发组件的重新渲染。在编写鸿蒙应用时,可以利用 @State 装饰器来标记需要动态变化的状态变量,这样可以更方便地实现组件的动态更新。

使用 @State 装饰器时需要注意以下几点:

  1. @State 装饰器只能用于类组件中的字段上。

  2. 被 @State 装饰器标记的变量不应该被直接修改,而是应该通过调用 setState 方法来进行更新。

  3. 在组件的构造函数中,需要通过调用 bind 方法将 this 绑定到 setState 中,否则在调用 setState 时会出现错误。

5. @Style 装饰器

// 公共属性和专有属性
@Styles function myText1() {
  .backgroundColor(Color.Gray)
  .width(400)
  .height(100)
  .padding({
    left: 50,
  })
}

// 组件的专有属性,扩展组件的属性
@Extend(Text) function myText2(size: number) {
  .fontSize(size)
  .fontSize(Color.Blue)
}

使用

@Entry
@Component
struct Page4 {
  build(){
    Column() {

      Text("Hello Harmony")
        .fontSize(30)
        .fontColor("#0000ff")
        .myText1()

      Text("Hello Harmony2")
        .fontSize(30)
        .fontColor("#0000ff")
        .myText1()

      Text("Hello Harmony3")
        .fontSize(30)
        .fontColor("#0000ff")
        .myText1()
    }
  }
}

6. @Entry的生命周期

  • 页面加载的时候,会依次调用:aboutToAppear() --> onPageShow()
  • 点击手机返回,会依次调用:onBackPress() —> aboutToDisappear()
  • 再次打开桌面应用,会依次调用:aboutToAppear() —> onPageShow()
  • 点击手机回到桌面按钮,会依次调用:onPageHide(), 再次打开的时候只调用 onPageShow()
// 组件的生命周期方法
@Entry
@Component
struct Page5 {
  @State message: string = 'Hello World'
  private tag: string = "-------->"

  aboutToAppear() {
    // 在build之前调用
    console.info(`${this.tag}, aboutToAppear()方法被调用了`)
  }

  build() {

    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
        Blank()
      }
      .width('100%')
    }
    .height('100%')
  }

  aboutToDisappear() {
    console.info(`${this.tag}, aboutToDisappear()方法被调用了`)

  }

  onPageShow() {
    console.info(`${this.tag}, onPageShow()方法被调用了`)

  }

  onPageHide() {
    console.info(`${this.tag}, onPageHide()方法被调用了`)

  }

  onBackPress() {
    console.info(`${this.tag}, onBackPress()方法被调用了`)

  }
}

7. 基础组件介绍

在这里插入图片描述

7.1 Text

在这里插入图片描述

7.2 TextInput

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8. router 路由跳转

import router from '@ohos.router';

跳转

router.pushUrl({
  url: "pages/Page5"
})

http://www.niftyadmin.cn/n/5006110.html

相关文章

B站:TED-ED 世界人文历史英文动画100集【双语字幕】(第1集)

视频链接:TED-ED 世界人文历史英文动画100集【双语字幕】_哔哩哔哩_bilibili

初次安装Pytorch过程

第一次安装Pytorch,刚开始安装的时候装错了CUDA的版本号 这里最高支持12.2.138, 但是我装了一个12.2.140的CUDA,导致不兼容我在测试时发现 import torch# if torch.cuda.is_available(): # print("GPU可用") # else: # p…

[运维|中间件] 东方通TongWeb忘记密码后修改密码

参考文献 Tongweb忘记密码处理办法 修改密码 以下步骤将thanos用户密码修改为 thanos123.com 编辑twusers.properties文件 vim /path/to/TongWeb7.0/conf/security/twusers.properties将thanos的内容修改为默认的密码信息: thanos3d6391e41e9c4319$3$6774c6fc9…

Spring Cloud 面试题总结

Spring Cloud和各子项目版本对应关系 Spring Cloud 是一个用于构建分布式系统的开发工具包,它基于Spring Boot提供了一组模块和功能,用于构建微服务架构中的分布式应用程序。Spring Cloud的不同子项目有各自的版本,下面是一些常见的Spring C…

学习 Java 的多线程开发

在介绍线程 Thread 之前,我们必须先搞清楚程序 Program 和进程 Process 这两个概念。 程序 Program:一组代码的集合,用于解决特定的问题。相当于面向对象概念中的类 Class。进程 Process:由程序生成的执行实例,一个程…

ChatGPT集锦

目录 1. 一条指令让ChatGPT变的更强大2. 对ChatGPT提问时,常见的10种错误描述3. Custom instructions如何设置1. 一条指令让ChatGPT变的更强大 在使用GPT的过程中,如何让AI更清晰地了解你的需求很重要?今天分享一个指令,可以让GPT成为你的好同事,与你一起分析和解决问题,…

leetcode 92.反转链表II dummy节点的应用

题目 方法 dummy节点 链表的第一个结点,因为没有前驱结点,存在同时删除前驱和后继的情况,这时候我们需要人为构造dummy节点——人为制造出来的第一个结点的前驱结点,也就是说,在可能操作head节点时,我们可…

关闭vscode检查更新

要关闭 Visual Studio Code 的自动检查更新功能,请按照以下步骤进行操作: 打开 Visual Studio Code。点击左侧的扩展图标(四个方块组成的图标)。在扩展面板中,点击右上角的齿轮图标,选择 “扩展设置”。在…