分析鸿蒙组件生命周期,并实现二次侧滑退出应用

鸿蒙组件生命周期详细解释

鸿蒙系统中的组件生命周期与传统的Web前端生命周期有所不同,主要分为以下几个阶段:

  1. aboutToAppear
  • 在创建自定义组件的新实例后,在执行其 build 函数之前执行。
  • 允许在此阶段改变状态变量,这些更改将在随后的 build 函数中生效。
  • 用途:在这个阶段,开发者可以做一些初始化工作或者数据预加载,确保当组件呈现时,能够立即展示最新的数据或状态。
  1. aboutToDisappear
  • 在自定义组件被销毁前执行。
  • 不建议在此阶段改变状态变量,尤其是对 @Link 变量的修改可能导致应用行为不稳定。
  • 用途:一些清除、注销、销毁工作可以在这个阶段执行。
  1. onPageShow
  • 当页面显示时触发,包括路由切换、应用从后台转到前台等场景。
  • 仅对带有 @Entry 修饰符的自定义组件生效。
  • 用途:比如在有Tabs(TabContent)的页面组件中可以有妙用。
  1. onPageHide
  • 当页面隐藏时触发,例如路由切换或应用从前台转到后台。
  • 同样仅对带有 @Entry 修饰符的自定义组件生效。
  • 用途:比如在有Tabs(TabContent)的页面组件中可以有妙用。
  1. onBackPress
  • 当用户点击返回按钮时触发。
  • 返回 true 表示页面自己处理返回逻辑,不进行页面路由;返回 false 表示使用默认的路由返回逻辑。
  • 如果未设置返回值,默认视为 false。
  • 用途:可以对退出操作做一些必要业务层上必要的拦截操作。

实现二次侧滑退出应用

了解完组件生命周期之后,我们如果想实现二次侧滑退出应用,就可以在onBackPress中这么写

// 当用户点击返回按钮时触发此方法
firstBackTimestamp: number = 0;
onBackPress(): boolean | void {
  // 获取当前时间戳
  let now = Date.now();

  // 判断两次点击返回按钮的时间间隔是否大于2秒
  if (now - this.firstBackTimestamp > 2000) { 
    // 提示用户再次点击将退出应用
    ToastUtil.showToast('再按一次退出应用');

    // 更新第一次点击的时间戳
    this.firstBackTimestamp = now;

    // 返回 true 表示页面自己处理返回逻辑
    return true;
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值