一级目录

在这里插入图片描述
这将是 HarmonyOS 学习笔记的最后一课,本人只是过了一遍,并未实际上手
后面讲的 Stage 模型,大多和实际开发相关,且还需要仿真模拟器
在这里插入图片描述
有兴趣的朋友可以自行观看
视频原址跳转

页面1

import { router } from '@kit.ArkUI'

@Component struct ui_zi{
  aboutToAppear(): void {console.log('zi_Appear')}
  aboutToDisappear(): void {console.log('zi_DisAppear')}

  build() {
    Column(){
      Text('子组件')
        .fontSize(40)
        .padding('10%')
        .borderWidth(4)
    }
  }
}

@Entry
@Component struct Index {
  @State zt : boolean = true
  aboutToAppear(): void {console.log('Appear')} //组件创建触发
  aboutToDisappear(): void {console.log('DisAppear')} //组件销毁触发
  onPageShow(): void {console.log('onPageShow')}  //页面显示触发
  onPageHide(): void {console.log('onPageHide')}  //页面隐藏触发
  onBackPress(): boolean | void {console.log('onBackPress')}  //点击返回触发

  build() {
    Column({space:10}){
      Text('组件生命周期')
        .fontSize(40)
      Button('子组件切换')
        .fontSize(40)
        .onClick(()=>{this.zt = !this.zt})
      if (this.zt) {ui_zi()}
      Button('页面跳转')
        .fontSize(40)
        .onClick(()=>{router.pushUrl({url:'pages/Page1',params:['1','2']})})
    }.width('100%').height('100%')
  }
}

页面2

import { router } from '@kit.ArkUI';
interface dl{zh:string,mm:string} //  定义对象

@Entry
@Component
struct Page1 {

  onPageShow(): void {console.log('page1_onPageShow')}  //页面显示触发
  onPageHide(): void {console.log('page1_onPageHide')}  //页面隐藏触发
  onBackPress(): boolean | void {  //点击返回触发
    console.log('page1_onBackPress')
    return true //返回真 则阻止返回上一页
  }

  @State message: string = 'Hello World';
  @State user : string[] = ['','']

  aboutToDisappear(): void {console.log('page1_DisAppear')} //组件销毁触发
  aboutToAppear(): void { //组件创建触发
    console.log('page1_Appear')
    this.user = router.getParams() as string[]  //  页面接收传参 接收对象 赋值 类型
  }

  build() {
    Column({space:20}) {
      Text(this.message)
        .fontSize(60)
      Row(){
        Text('更多')
          .fontSize(40)
          .onClick(()=>{router.pushUrl({url:'pages/Page1_1'})}) //  可返回
        Text('我的')
          .fontSize(40)
          .onClick(()=>{router.pushUrl({url:'pages/Page1_2'})})
      }.width('100%')
      .justifyContent(FlexAlign.SpaceEvenly)
      Button('返回')
        .onClick(()=>{router.back()}) //onBackPress真 阻止不了router.back
    }
    .height('100%')
    .width('100%')
  }
}

onBackPress真 阻止不了router.back
在这里插入图片描述
最后说一句本人也是 typescript 零基础,看弹幕才知道是TS语法
发现视频老师课程讲的非常好,课程设计也非常棒
但在语法上有些也是漏掉了,我也是看另一位博主的视频才发现的
比如,字典等等,希望各位朋友多多练习,多多上手,
祝各位朋友前程似锦
感谢点赞,收藏,关注的朋友
昨天看的是cocos 用TS语言开发,所以才会顺嘴说一句语法问题

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐