HarmongOS开发(2):页面和组件的生命周期和参数传递

前言 :自定义组件是@Component装饰的UI单元。@Entry装饰的自定义组件为页面的入口组件,1个页面仅有一个@Entry,可以有多个自定义组件,页面只有调用@Entry的组件,生命周期才能开启。

生命周期

页面生命周期(@Entry装饰的组件生命周期)

  • onPageShow:页面每次显示时触发。
  • onPageHide:页面每次隐藏时触发一次。
  • onBackPress:当用户点击返回按钮时触发。

组件生命周期(@Component装饰的自定义组件的生命周期)

  • aboutToApper:组件即将出现时回调该接口;引用组件实例后,执行其build函数之前。
  • aboutToDisapper:在自定义组件即将销毁时执行

参数传递

参数传递原则:

  • 参数类型和参数声明类型一致,不能为nullundefined、undefined或者null的表达式。
  • 在函数内部,参数值不可修改,如要修改,可以采取同步回调

参数传递分为按引用传递参数和按值传递

特别注意:传递的参数为状态变量时,按值传递不能引起UI刷新,引用传递可以UI刷新。

引用传递函数:

CiteData($$: {name: string,age: number}) {}//创建函数

{$$.name} //使用参数

this.CiteData({ name:this.title,age: 10 }) //使用函数

按值传递函数:

ValueData(name: string, age: number){}//创建函数

name //使用参数

this.ValueData("xxx",10)//使用函数

typescript 复制代码
@Component
struct child {
  @State title: string = "无名氏"

  build() {
    Row() {
      Column() {
        this.ValueData(this.title,10)//按值传递 调用方式
        this.CiteData({ name:this.title,age: 10 })// 引用传递 调用方式
        Button("点击改变值").onClick(()=>{
          this.title = '张三'
          //结果:引用传递的name的UI刷新了,按值传递的name的UI没变化
        })
      }
      .width('100%')
    }
    .height('100%')
  }

  @Builder CiteData($$: {
    name: string,
    age: number
  }) { //引用传递
    Text(`引用传递:${$$.name}的年龄是${$$.age}`) //使用方式
  }

  @Builder ValueData(name: string, age: number) { //按值传递
    Text(`按值传递:${name}的年龄是${age}`) //使用方式
  }
相关推荐
2501_919749031 小时前
华为鸿蒙免费PDF工具—小羊免费PDF
华为·pdf·harmonyos·鸿蒙
贾伟康3 小时前
【口算王|10】HarmonyOS ArkTS 语音报题实战:协调朗读、作答和页面生命周期
生命周期·harmonyos·arkts·语音交互·texttospeech
贾伟康4 小时前
【口算王|08】HarmonyOS ArkTS 分类训练实战:让年级与运算分类参数保持一致
harmonyos·arkts·数据建模·路由参数·分类训练
光锥智能4 小时前
华为新麒麟芯片、鸿蒙7问世,手机底层竞赛升级
华为·智能手机·harmonyos
贾伟康5 小时前
【口算王|09】HarmonyOS ArkTS 学习统计实战:计算连续训练和正确率趋势
harmonyos·arkts·数据可视化·preferences·学习统计
lqj_本人6 小时前
Flutter 鸿蒙实战:用 wakelock_plus 三方库给阅读页加上屏幕常亮
flutter·华为·harmonyos
aqi0016 小时前
鸿蒙版本的JSBridge兼容与安卓配套的H5啦
android·华为·harmonyos·鸿蒙·移动应用
熊猫钓鱼>_>17 小时前
Flutter app_settings 鸿蒙适配实战:Intent 体系到 Want 的跨越
flutter·华为·harmonyos·openharmony·intent·want
贾伟康20 小时前
【句匠|20】HarmonyOS ArkTS AppGallery 发布复查实战:核对包名、版本、设备、素材和离线声明
harmonyos·arkts·应用上架·appgallery·发布审核
贾伟康20 小时前
【句匠|15】HarmonyOS ArkTS 本地状态持久化实战:让保存、删除和页面返回后的数据即时一致
harmonyos·arkts·数据持久化·appstorage·preferences