@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 段落
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
鸿蒙
+关注
关注
57文章
2306浏览量
42731
发布评论请先 登录
相关推荐
鸿蒙开发:启动指定页面
当PageAbility的启动模式设置为单例时(具体设置方法和典型场景示例见[PageAbility的启动模式],缺省情况下是单实例模式),若PageAbility已被拉起,再次启动PageAbility会触发onNewWant回调(即非首次拉起)。
鸿蒙开发:【页面栈及任务链】
单个UIAbility组件可以实现多个页面,并在多个页面之间跳转,这种UIAbility组件内部的页面跳转关系称为“页面栈”,由ArkUI框架统一管理,如下图中的UIAbility1
鸿蒙开发接口UI界面:【@ohos.router (页面路由)】
本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
> - 页面路由需要在页面渲染完成之后才能调用,在onInit和onReady生命周期中页面还处于渲染阶段,禁止调用
鸿蒙原生应用元服务开发-Web应用侧调用前端页面函数
应用侧可以通过runJavaScript()方法调用前端页面的JavaScript相关函数。
在下面的示例中,点击应用侧的“runJavaScript”按钮时,来触发前端页面的htmlTest
发表于 05-11 15:31
纯血鸿蒙开发教程-运行时动态加载页面提升性能
很长时间,但这些复杂的子页面与主页渲染无关。 本文推荐使用动态加载解决上述问题,不在应用程序加载时就将所有模块都加载进来,而是按需加载模块,增加应用灵活性,提升应用性能。
场景示例
主页
子页面
发表于 05-10 20:52
鸿蒙原生应用元服务开发-Web前端页面调用应用侧函数
端页面中, 该函数可以在前端页面触发运行。
javaScriptProxy()接口使用示例如下。
// xxx.ets
import web_webview from
发表于 05-07 15:03
鸿蒙OS开发实例:【页面传值跳转】
本篇主要介绍如何在HarmonyOS中,在页面跳转之间如何传值
HarmonyOS 的页面指的是带有@Entry装饰器的文件,其不能独自存在,必须依赖UIAbility这样的组件容器
如下是官方关于State模型开发模式下的应用包结构示意图,Page就是带有@En
鸿蒙OS开发实例:【工具类封装-页面路由】
import common from '@ohos.app.ability.common';
import router from '@ohos.router'封装app内的页面之间跳转、app与app之间的跳转工具类
鸿蒙实战项目开发:【短信服务】
概述
本示例展示了电话服务中发送短信的功能。
样例展示
涉及OpenHarmony技术特性
网络通信
难度级别
中级
基础信息
使用@ohos.telephony.sms接口展示了电话服务中发
发表于 03-03 21:29
Harmony 鸿蒙页面级变量的状态管理
页面级变量的状态管理 @State、@Prop、@Link、@Provide、@Consume、@ObjectLink、@Observed和@Watch用于管理页面级变量的状态。 @State
Harmony 鸿蒙页面级变量的状态管理
页面级变量的状态管理
@State、@Prop、@Link、@Provide、@Consume、@ObjectLink、@Observed和@Watch用于管理页面级变量的状态。
@State
发表于 01-24 20:04
评论