0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙页面示例

王程 来源:jf_75796907 作者:jf_75796907 2024-02-01 11:24 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

@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标签

对应@Builder标签,类似于java接口传递

/**
 * 全局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

    文章

    3018

    浏览量

    46172
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于Matter over Thread的照明应用示例简要设置步骤

    在Silicon Labs(芯科科技)近期更新的技术支持文档页面中,我们详细描述了运行一个基于Matter over Thread的照明应用示例的简要设置步骤。
    的头像 发表于 02-03 14:03 685次阅读
    基于Matter over Thread的照明应用<b class='flag-5'>示例</b>简要设置步骤

    小艺开放平台快速创建鸿蒙智能体

    1.登录小艺开放平台,进入小艺智能体平台页面,点击立即体验,进入创建页面。 2.点击左上角【+创建智能体】按钮,即可进入智能体创建流程。 3.击【+创建】后,会进入到标准创建页面,在这里你可以直接
    发表于 01-19 11:00

    以龙企招为例,浅谈鸿蒙应用开发者激励计划 2025 参与心得

    2025 年,我们带着 “龙企招” 鸿蒙应用,报名参与了鸿蒙应用开发者激励计划。原本满怀期待地提交上架申请,却收到了审核未通过的通知。这次经历虽有遗憾,却让我们深刻体会到鸿蒙生态对应用质量的严格要求
    发表于 12-12 10:17

    触觉智能RK3576开发板OpenHarmony开源鸿蒙系统USB控制传输功能示例

    本文介绍OpenHarmony开源鸿蒙系统的USB控制传输功能实现及相关代码示例,基于触觉智能RK3576开发板PurplePiOH2演示。OpenHarmony的USB通信介绍实现
    的头像 发表于 09-30 16:31 1805次阅读
    触觉智能RK3576开发板OpenHarmony开源<b class='flag-5'>鸿蒙</b>系统USB控制传输功能<b class='flag-5'>示例</b>

    鸿蒙6.0系统星闪蓝牙入口合并

    有数码博主爆料称在华为鸿蒙 HarmonyOS 6.0 系统 Beta3 版本的部分场景操作视频中可以看到,星闪和蓝牙的功能入口和功能页面已经合并。  
    的头像 发表于 09-01 16:59 1079次阅读

    知乎开源“智能预渲染框架” 几行代码实现鸿蒙应用页面“秒开”

    近日,知乎在Gitee平台开源了其自研的鸿蒙“智能预渲染框架”,并将该框架的Har包上架到OpenHarmony三方库中心仓。该框架在鸿蒙平台首创“智能预渲染”技术,旨在破解应用复杂页面加载缓慢
    的头像 发表于 08-29 14:32 710次阅读
    知乎开源“智能预渲染框架” 几行代码实现<b class='flag-5'>鸿蒙</b>应用<b class='flag-5'>页面</b>“秒开”

    【HarmonyOS 5】鸿蒙页面和组件生命周期函数

    【HarmonyOS 5】鸿蒙页面和组件生命周期函数 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、生命周期阶段: 创建阶段 build
    的头像 发表于 07-11 18:24 1184次阅读

    【HarmonyOS 5】鸿蒙星闪NearLink详解

    与使用: 点击跳转官方文档地址 鸿蒙星闪(NearLink)的基本接入代码示例,包含设备发现、连接和数据传输的核心流程: // NearLi
    的头像 发表于 07-11 18:24 2050次阅读
    【HarmonyOS 5】<b class='flag-5'>鸿蒙</b>星闪NearLink详解

    【 HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解

    【 HarmonyOS 5 入门系列 】鸿蒙HarmonyOS示例项目讲解 ##鸿蒙开发能力 ##HarmonyOS SDK应用服务##鸿蒙金融类应用 (金融理财# 一、前言:移动开发
    的头像 发表于 07-07 11:57 1192次阅读
    【 HarmonyOS 5 入门系列 】<b class='flag-5'>鸿蒙</b>HarmonyOS<b class='flag-5'>示例</b>项目讲解

    鸿蒙5开发宝藏案例分享---Web页面内点击响应时延分析

    鸿蒙Web性能优化宝藏指南!那些官方没明说的实战技巧 各位鸿蒙开发者好!最近在排查Web页面卡顿时,意外在HarmonyOS开发者文档里挖到性能优化的宝藏案例!这些实战经验藏在「应用质量 &
    发表于 06-12 17:09

    鸿蒙5开发宝藏案例分享---性能体验设计

    小伙伴可能没注意到。今天我就把这些干货整理出来,配上代码示例,让你轻松打造60帧无卡顿的鸿蒙应用! 一、感知流畅性核心原则 官方文档强调: 流畅≠高性能 ,而是操作响应、动效、心理预期的完美配合。举个
    发表于 06-12 16:45

    鸿蒙5开发宝藏案例分享---性能优化案例解析

    鸿蒙性能优化宝藏指南:实战工具与代码案例解析 大家好呀!今天在翻鸿蒙开发者文档时,意外挖到一个 性能优化宝藏库 ——原来官方早就提供了超多实用工具和案例,但很多小伙伴可能没发现!这篇就带大家手把手
    发表于 06-12 16:36

    KaihongOS操作系统:页面的生命周期介绍

    页面的生命周期 在KaihongOS中,学习页面的生命周期前需要先了解自定义组件。 1. 自定义组件(Component) 自定义组件是通过@Component装饰的UI单元,可以组合多个系统
    发表于 04-25 08:18

    如何在KaihongOS操作系统中写一个动态的页面

    /profile目录,在main_pages.json文件中的“src”下配置第二个页面的路由“pages/Second”。示例如下: {"src": [ "
    发表于 04-25 06:42

    DevEco Studio 写一个简单的页面

    写一个简单的页面 说明: 为确保运行效果,本文及之后的文档示例都将以使用DevEco Studio 4.1 Release版本为例。 我们在构建第一个应用程序中新建了一个名为
    发表于 04-24 07:36