HarmonyOS 鸿蒙Next @Entry和@Component的扩展

发布于 1周前 作者 nodeper 来自 鸿蒙OS

HarmonyOS 鸿蒙Next @Entry@Component的扩展

我们的交易模块的所有页面都要添加长时间未触摸超时锁屏页面,目前鸿蒙UI没有继承和基类,请问是否有比较合适的方法实现此功能。

2 回复
通过将锁屏页面设置为自定义组件,使用export导出其组件其他页面即可使用,可参考以下链接:

创建自定义组件-自定义组件-UI范式基本语法-学习ArkTS语言-基础入门 - 华为HarmonyOS开发者 (huawei.com)

可参考以下demo:

//以下可看成是锁屏页面的封装页面组件
[@Builder](/user/Builder)
export default  function PageBuilder(){
  Column(){
    Row() {
      Text('ROW2').fontSize(40)
    }.backgroundColor(Color.Orange).padding(20)
    Row() {
      Text('ROW3').fontSize(40)
    }.backgroundColor(Color.Orange).padding(20)
    Row() {
      Text('ROW4').fontSize(40)
    }.backgroundColor(Color.Orange).padding(20)
  }
}
//以下是其他页面对锁屏页面的调用
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
  build() {
    Row() {
      Column() {
        PageBuilder()
      }
      .width('100%')
    }
    .height('100%')
  }
} 

在HarmonyOS鸿蒙系统中,@Entry@Component是两个关键注解,用于定义应用程序的入口组件和普通组件。

@Entry注解用于标记一个Ability作为应用的入口点。在鸿蒙应用中,Ability是应用的基本执行单元,类似于Android中的Activity或Service。使用@Entry注解的Ability会在应用启动时首先被加载和运行。它通常用于定义应用的主界面或启动界面。

@Component注解则用于定义普通组件,这些组件可以在应用中被其他组件调用或引用。与@Entry不同,@Component注解的组件不是应用的入口点,但它们是实现应用功能的重要组成部分。通过@Component注解,开发者可以定义各种类型的组件,如Page、Service等,以满足应用的不同需求。

在扩展@Entry@Component时,开发者需要注意组件的生命周期管理、资源加载与释放、以及与系统服务的交互等关键方面。这些扩展通常涉及到对鸿蒙系统API的深入理解和应用。

如果开发者在扩展@Entry@Component时遇到问题,可能是由于对系统API的理解不够深入或代码实现有误。此时,建议仔细查阅鸿蒙系统的官方文档和API参考,以确保正确理解和使用相关API。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部