鸿蒙 DevEcoStudio:组件实例(页面及组件生命周期函数)

【使用onPageshow等生命周期函数】

在entry/src/main/ets/pages路径下创建Page1.ets:

复制代码
import router from '@ohos.router'
@Entry
@Component
struct Page1 {
  @State message: string = 'Hello World'
  @State show: boolean=true
  aboutToAppear(){
    console.log('Page1组件创建实例')
  }
  aboutToDisappear(){
    console.log('Page1组件销毁')
  }
  onPageShow(){
    console.log('page1页面展示')
  }
  onPageHide(){
    console.log("page1页面隐藏")
  }
  build() {
      Column() {
        Button('show')
          .onClick(()=>{
            this.show=!this.show
          })
        if (this.show){
          ComponentA()
        }
        Button('跳转到Page2')
          .onClick(()=>{
            router.pushUrl({url:"pages/Page2"})
          })
        Button('跳转到Page3')
          .onClick(()=>{
            router.replaceUrl({url:"pages/Page3"})
          })
      }
      .width('100%')
      .height('100%')
  }
}
@Component
struct ComponentA{
  aboutToAppear(){
    console.log('componentA组件创建实例')
  }
  aboutToDisappear(){
    console.log('componentA组件销毁');
  }
  build(){
    Text('compontent A')
  }
}

在entry/src/main/ets/pages路径下同样创建Page2.ets和Page3.ets:

1.Page2.ets内容:

复制代码
@Entry
@Component
struct Page2 {
  @State message: string = 'Page2内容'
  onPageShow(){
    console.log('page2页面展示')
  }
  onPageHide(){
    console.log("page2页面隐藏")
  }
  onBackPress(){
    console.log("Page2页面返回")
  }
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

2.Page3.ets内容:

复制代码
@Entry
@Component
struct Page3 {
  @State message: string = 'Page3内容'
  onPageShow(){
    console.log('page3页面展示')
  }
  onPageHide(){
    console.log("page3页面隐藏")
  }
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    }
    .height('100%')
  }
}

在下边点击Log->HiLog,中间最左边的下拉菜单选择Phone,查看效果,如图:

相关推荐
电手20 小时前
时隔4年麒麟重新登场!华为这8.8英寸新「手机」给我看麻了
华为·智能手机
程序员潘Sir1 天前
鸿蒙应用开发从入门到实战(一):鸿蒙应用开发概述
harmonyos
敲代码的鱼哇1 天前
跳转原生系统设置插件 支持安卓/iOS/鸿蒙UTS组件
android·ios·harmonyos
在下历飞雨1 天前
Kuikly基础之状态管理与数据绑定:让“孤寡”计数器动起来
ios·harmonyos
在下历飞雨1 天前
Kuikly基础之Kuikly DSL基础组件实战:构建青蛙主界面
ios·harmonyos
HarmonyOS小助手1 天前
HEIF:更高质量、更小体积,开启 HarmonyOS 图像新体验
harmonyos·鸿蒙·鸿蒙生态
嘿嘿-g1 天前
华为IP(9)
网络·华为
self_myth1 天前
[特殊字符] 深入理解操作系统核心特性:从并发到分布式,从单核到多核的全面解析
windows·macos·wpf·harmonyos
安卓开发者2 天前
鸿蒙NEXT主题设置指南:应用级与页面级主题定制详解
华为·harmonyos
深盾科技2 天前
鸿蒙ABC开发中的名称混淆与反射处理策略:安全与效率的平衡
安全·华为·harmonyos