ArkTS基础——@Entry——【坚果派——红目香薰】

举报
红目香薰 发表于 2024/03/31 18:01:15 2024/03/31
【摘要】 ​摘要作者:红目香薰团队:坚果派 团队介绍:坚果派由坚果创建,团队拥有12个华为HDE以及若干其他领域的三十余位万粉博主运营。 目录摘要Entry组件Entry使用注意事项阐述说明ArkTS的@Entry生命周期Entry组件@Entry装饰的自定义组件用作页面的默认入口组件,加载页面时,将首先创建并呈现@Entry装饰的自定义组件。只在页面上呈现@Entry装饰的组件,且@Entry必须唯...

摘要

作者:红目香薰
团队:坚果派
团队介绍:坚果派由坚果创建,团队拥有12个华为HDE以及若干其他领域的三十余位万粉博主运营。 

目录

摘要

Entry组件

Entry使用注意事项阐述说明

ArkTS的@Entry生命周期


Entry组件

@Entry装饰的自定义组件用作页面的默认入口组件,加载页面时,将首先创建并呈现@Entry装饰的自定义组件。

只在页面上呈现@Entry装饰的组件,且@Entry必须唯一。

被@Entry 装饰的入口组件,build()函数中必须有且仅有一个根容器组件,如row()。

​编辑

测试代码:


@Component

struct Index {

@State message: string = 'Hello World'


build() {

Row() {

Column() { //行信息

Text(this.message)

.fontSize(50)

.fontWeight(FontWeight.Bold)


ShowInfos()// 调用自定义组件

}

.width('100%')

}

.height('50%')

}

}

@Entry

@Component

struct ShowInfos {

@State showInfo: string = '这是华为的ArkTS语言' //这里是State是自动刷新的

build() {

Row() {

Column() {

Text(this.showInfo) //使用this.即可获得自定义的变量名进行参数设置

.fontColor(Color.Red)

.fontSize(70)

.fontWeight(FontWeight.Bolder)

.textAlign(TextAlign.Center)

}.width('100%')

}.height('50%')

}

}

更换函数调用

​编辑

调试代码


@Component

struct Index {

@State message: string = 'Hello World'


build() {

Row() {

Column() { //行信息

Text(this.message)

.fontSize(50)

.fontWeight(FontWeight.Bold)

}

.width('100%')

}

.height('50%')

}

}

@Entry

@Component

struct ShowInfos {

@State showInfo: string = '这是华为的ArkTS语言' //这里是State是自动刷新的

build() {

Row() {

Column() {

Text(this.showInfo) //使用this.即可获得自定义的变量名进行参数设置

.fontColor(Color.Red)

.fontSize(70)

.fontWeight(FontWeight.Bolder)

.textAlign(TextAlign.Center)

Index() // 调用Index自定义组件

}.width('100%')

}.height('50%')

}

}

Entry使用注意事项阐述说明

ArkTS是一种声明型工具,主要用于TypeScript和Vue 3的开发,其中的@Entry组件可以帮助我们更好的组织代码和界面。使用ArkTS的@Entry时,有几个重要的注意事项:

• 避免依赖泄露:当组件创建并挂载后,依赖其他组件,可能需要引入或者需要清理等。如果没有妥善处理这些依赖,可能会引发泄漏。所以建议在每次创建新的Entry时都考虑好它的生命周期。

• 使用条件渲染:对于同一个@Entry创建的不同实例,由于在内存中的生命周期问题,有可能在不同的生命周期调用其生命周期函数。此时使用条件渲染可以有效避免问题。

• 注意布局管理:使用ArkTS进行开发时,组件之间的布局问题也是需要重点考虑的。特别是在一些复杂的界面中,如何确保布局的正确性和美观性是一个重要的问题。

• 正确使用API:在使用ArkTS的API时,需要注意API的使用方法和API的正确性。如果不了解API的作用和使用方式,可能会导致组件功能不正常或者出现问题。

• 合理利用资源:ArkTS提供了一些用于处理资源的API,如Image等。在使用这些API时,需要注意资源的加载和释放,避免资源的浪费和泄漏。

• 确保性能:ArkTS中的一些操作可能会影响性能,如动态添加组件等。在使用这些操作时,需要考虑到性能的影响,合理使用优化技术。

总的来说,使用ArkTS的@Entry时,需要注意组件的生命周期、布局管理、API的使用、资源的处理和性能优化等方面的问题。只有在综合考虑这些问题的基础上,才能更好地使用@Entry进行开发。

ArkTS的@Entry生命周期

ArkTS是一个基于TypeScript的声明文件驱动的模块打包系统,而@Entry生命周期则是在ArkTS中用于处理模块入口点的生命周期。

在ArkTS中,@Entry装饰器用于标记一个模块为入口模块,它决定了该模块在应用程序启动时被加载的时机和方式。@Entry生命周期指的是入口模块在应用程序中的生命周期,包括以下几个阶段:

• 加载阶段:当应用程序启动时,ArkTS会扫描所有使用@Entry装饰器的模块,并加载它们。这个阶段通常发生在应用程序启动时,入口模块会被加载到内存中。

• 初始化阶段:当入口模块被加载到内存中后,ArkTS会对其进行初始化操作,包括解析模块中的类型定义、执行模块中的代码等。这个阶段通常发生在入口模块被加载后,但还没有被使用之前。

• 使用阶段:当应用程序需要使用入口模块中的功能时,ArkTS会将其暴露给应用程序的其他部分。这个阶段通常发生在入口模块被使用时,入口模块中的功能会被调用。

• 清理阶段:当应用程序结束时,ArkTS会执行入口模块的清理操作,包括释放资源、关闭模块等。这个阶段通常发生在应用程序退出之前,入口模块会被清理掉。

因此,@Entry生命周期是一个有四个阶段的生命周期,它在应用程序启动和结束时控制入口模块的生命周期,确保入口模块能够正确地被加载、初始化、使用和清理。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。