HarmonyOS 鸿蒙Next 如何编写一个可继承的Page

HarmonyOS 鸿蒙Next 如何编写一个可继承的Page 想把一些公用的方法,写成一个page,其他page 去继承

@Component
@Entry
struct findPassWordPage extends basePage

这样写不可以,请问如何实现。

4 回复

如果你想使用类似继承的功能,我建议你把相关功能封装成一个组件,页面显示的内容使用@BuilderParam装饰器来显示,类似H5的slot插槽。

更多关于HarmonyOS 鸿蒙Next 如何编写一个可继承的Page的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你可以使用APO加注解的形式,实现继承,像下面这样,不是用extends

@BasePage(name="xxx")
struct findPassWordPage{
}

好像不能,struct不能继承。可以选择N-API开发原生组件,或者找一找第三方原生开发组件,

在HarmonyOS(鸿蒙OS)的Next版本中,编写一个可继承的Page可以通过自定义Page组件来实现。首先,创建一个基础Page类,其他Page可以继承该类以复用代码。以下是一个示例:

import { Page, AbilityContext } from '@ohos.ability.featureAbility';

export abstract class BasePage extends Page {
  constructor(context: AbilityContext) {
    super(context);
  }

  onInit() {
    // 初始化逻辑
  }

  onReady() {
    // 页面准备就绪逻辑
  }

  onShow() {
    // 页面显示逻辑
  }

  onHide() {
    // 页面隐藏逻辑
  }

  onDestroy() {
    // 页面销毁逻辑
  }
}

然后,其他Page可以直接继承BasePage并扩展或重写方法:

import { AbilityContext } from '@ohos.ability.featureAbility';
import { BasePage } from './BasePage';

export class MyPage extends BasePage {
  constructor(context: AbilityContext) {
    super(context);
  }

  onInit() {
    super.onInit();
    // 自定义初始化逻辑
  }

  onShow() {
    super.onShow();
    // 自定义显示逻辑
  }
}

通过这种方式,可以方便地实现Page的继承和复用。

回到顶部