@Component
标签修饰UI,相当于Android的view,所有的UI组件都要使用@Component标签
@Entry标签
表明当前是一个页面,不是一个视图。多个组件组合时只能有一个@Entry标签,被该标签修饰后页面才会有生命周期
import router from '@ohos.router'
@Entry
@Component
struct Login {
@State title: string = '登录页面'
build() {
Row() {
Column() {
Text(this.title).fontSize(20)
.fontWeight(FontWeight.Bold)
.textAlign(TextAlign.Center)
.width('100%').margin({top:10})
Button() {
Text('返回')
.fontSize(18)
.fontWeight(FontWeight.Bold)
}.type(ButtonType.Capsule)
.padding({top:5,bottom:5,left:10,right:10})
.margin({top:20})
.onClick(()=>{
try{
router.back()
}catch (err){
console.error("错误="+err.code +" message="+err.message)
}
})
}
}.width('100%')
}
onPageShow(){
//页面每次显示时触发
}
onPageHide(){
//页面每次隐藏时触发
}
onBackPress(){
//用户点击返回按钮时触发
}
aboutToAppear(){
//在执行build函数之前执行
}
aboutToDisappear(){
//组件即将销毁时执行
}
}
@Builder标签
使用该标签的方法会自动构建一个组件
- 全局方式
@Builder function xxx{}
- 组件内方式
@Builder xx{}
需要传递参数时采用引用传递 $$
//方法
@Builder function builderFunc($$:{showText:string}){
Text('全局 builder方法 '+$$.showText)
.fontSize(18)
.fontColor("#333333")
}
//调用
builderFunc({showText:'全局猪头'})
@BuilderParam标签
/**
* 全局styles样式
*/
@Styles function globalFancy(){
.width(100)
.height(150)
.backgroundColor(Color.Pink)
}
@Builder function builderFunc($$:{showText:string}){
Text('全局 builder方法 '+$$.showText)
.fontSize(18)
.fontColor("#333333")
}
@Component
struct testBuildParam{
@BuilderParam param:()=>void
build(){
Column(){
this.param()
}
}
}
//页面入口
@Entry
@Component
struct StylesPage{
@State heightNum:number = 100
@Styles selfFancy(){
.width(120)
.height(this.heightNum)
.backgroundColor(Color.Yellow)
.onClick(()=>{
this.heightNum = 180
})
}
@Builder builderSelf(){
Text("组件内方法")
.fontSize(15)
.fontColor("#999999")
.margin({top:20})
}
build(){
Column({space:10}){
Text("全局引用styles")
.globalFancy()
.fontSize(25)
Text("组件内的style")
.selfFancy()
.fontSize(18)
this.builderSelf()
builderFunc({showText:'全局猪头'})
testBuildParam({param:this.builderSelf})
}
}
}
审核编辑 黄宇
HTML 1800 字数 121 段落
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
鸿蒙
+关注
关注
60文章
2858浏览量
45351
发布评论请先 登录
相关推荐
热点推荐
触觉智能RK3576开发板OpenHarmony开源鸿蒙系统USB控制传输功能示例
本文介绍OpenHarmony开源鸿蒙系统的USB控制传输功能实现及相关代码示例,基于触觉智能RK3576开发板PurplePiOH2演示。OpenHarmony的USB通信介绍实现
曝鸿蒙6.0系统星闪蓝牙入口合并
有数码博主爆料称在华为鸿蒙 HarmonyOS 6.0 系统 Beta3 版本的部分场景操作视频中可以看到,星闪和蓝牙的功能入口和功能页面已经合并。
知乎开源“智能预渲染框架” 几行代码实现鸿蒙应用页面“秒开”
近日,知乎在Gitee平台开源了其自研的鸿蒙“智能预渲染框架”,并将该框架的Har包上架到OpenHarmony三方库中心仓。该框架在鸿蒙平台首创“智能预渲染”技术,旨在破解应用复杂页面加载缓慢
【HarmonyOS 5】鸿蒙页面和组件生命周期函数
【HarmonyOS 5】鸿蒙页面和组件生命周期函数 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、生命周期阶段: 创建阶段 build
【 HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解
【 HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、前言:移动开发
鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析
鸿蒙Web性能优化宝藏指南!那些官方没明说的实战技巧
各位鸿蒙开发者好!最近在排查Web页面卡顿时,意外在HarmonyOS开发者文档里挖到性能优化的宝藏案例!这些实战经验藏在「应用质量 &
发表于 06-12 17:09
鸿蒙5开发宝藏案例分享---性能体验设计
小伙伴可能没注意到。今天我就把这些干货整理出来,配上代码示例,让你轻松打造60帧无卡顿的鸿蒙应用!
一、感知流畅性核心原则
官方文档强调: 流畅≠高性能 ,而是操作响应、动效、心理预期的完美配合。举个
发表于 06-12 16:45
KaihongOS操作系统:页面的生命周期介绍
页面的生命周期
在KaihongOS中,学习页面的生命周期前需要先了解自定义组件。
1. 自定义组件(Component)
自定义组件是通过@Component装饰的UI单元,可以组合多个系统
发表于 04-25 08:18
如何在KaihongOS操作系统中写一个动态的页面
/profile目录,在main_pages.json文件中的“src”下配置第二个页面的路由“pages/Second”。示例如下:
{"src": [ "
发表于 04-25 06:42
DialogHub上线OpenHarmony开源社区,高效开发鸿蒙应用弹窗
作为鸿蒙应用开发者,在使用ArkUI现有能力进行弹窗开发时,总会遇到一些让人纠结的交互问题:应用内进行消息提示时,既要求消息内容支持图文混排,又要求弹窗本身不能打断用户交互(页面滑动、页面
发表于 04-03 17:30
Get这个秘籍,鸿蒙原生应用页面滑动丝滑无比
在鸿蒙应用开发中,部分应用页面在滑动时会出现白块或白屏的问题,不仅困扰开发者,还直接影响用户体验。针对这一痛点,华为近期分别推出了针对鸿蒙原生应用ArkUI页面及Web
发表于 03-06 14:41
鸿蒙原生页面高性能解决方案上线OpenHarmony社区 助力打造高性能原生应用
随着HarmonyOS NEXT的正式推出,鸿蒙原生应用开发热度高涨,数量激增。但在三方应用鸿蒙化进程中,性能问题频出。为此,HarmonyOS NEXT推出了一整套原生页面高性能解决方案,包括
发表于 01-02 18:00
《HarmonyOS第一课》焕新升级,赋能开发者快速掌握鸿蒙应用开发
、IDE环境搭建、ArkTS基础语法等知识,帮助开发者掌握基本页面开发与数据管理基础,完成简单应用及页面的开发并参与文档与示例代码的编写,为深入学习筑牢根基。 中级课程面向有独立开发能力的开发者,使其
发表于 01-02 14:24
鸿蒙Flutter实战:14-现有Flutter 项目支持鸿蒙 II
。
通过模块化、鸿蒙壳工程,结合 FVM 管理多版本 Flutter SDK,最终,保持原 Flutter 代码纯净,最小化修改,完成了鸿蒙化的适配示例。
本项目代码地址: https
发表于 12-26 14:59

鸿蒙页面示例
评论