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 段落

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    57

    文章

    2306

    浏览量

    42731
收藏 人收藏

    评论

    相关推荐

    鸿蒙开发:启动指定页面

    当PageAbility的启动模式设置为单例时(具体设置方法和典型场景示例见[PageAbility的启动模式],缺省情况下是单实例模式),若PageAbility已被拉起,再次启动PageAbility会触发onNewWant回调(即非首次拉起)。
    的头像 发表于 06-19 09:29 353次阅读
    <b class='flag-5'>鸿蒙</b>开发:启动指定<b class='flag-5'>页面</b>

    鸿蒙开发:【页面栈及任务链】

    单个UIAbility组件可以实现多个页面,并在多个页面之间跳转,这种UIAbility组件内部的页面跳转关系称为“页面栈”,由ArkUI框架统一管理,如下图中的UIAbility1
    的头像 发表于 06-14 10:10 360次阅读
    <b class='flag-5'>鸿蒙</b>开发:【<b class='flag-5'>页面</b>栈及任务链】

    鸿蒙开发接口UI界面:【@ohos.router (页面路由)】

    本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 > - 页面路由需要在页面渲染完成之后才能调用,在onInit和onReady生命周期中页面还处于渲染阶段,禁止调用
    的头像 发表于 05-28 16:26 828次阅读
    <b class='flag-5'>鸿蒙</b>开发接口UI界面:【@ohos.router (<b class='flag-5'>页面</b>路由)】

    鸿蒙OS开发:典型页面场景【一次开发,多端部署】(设置应用页面

    本小节以“设置”应用页面为例,介绍如何使用自适应布局能力和响应式布局能力适配不同尺寸窗口。
    的头像 发表于 05-27 10:33 1061次阅读
    <b class='flag-5'>鸿蒙</b>OS开发:典型<b class='flag-5'>页面</b>场景【一次开发,多端部署】(设置应用<b class='flag-5'>页面</b>)

    鸿蒙OS开发:典型页面场景【一次开发,多端部署】实战(设置典型页面

    示例展示了设置应用的典型页面,其在小窗口和大窗口有不同的显示效果,体现一次开发、多端部署的能力。
    的头像 发表于 05-27 09:36 1091次阅读
    <b class='flag-5'>鸿蒙</b>OS开发:典型<b class='flag-5'>页面</b>场景【一次开发,多端部署】实战(设置典型<b class='flag-5'>页面</b>)

    鸿蒙OS开发:典型页面场景【一次开发,多端部署】实战(应用市场首页)

    示例展示了应用市场首页,页面中包括Tab栏、运营横幅、精品应用、精品游戏等。
    的头像 发表于 05-24 15:21 863次阅读
    <b class='flag-5'>鸿蒙</b>OS开发:典型<b class='flag-5'>页面</b>场景【一次开发,多端部署】实战(应用市场首页)

    鸿蒙OS开发:【一次开发,多端部署】( 设置app页面

    示例展示了设置应用的典型页面,其在小窗口和大窗口有不同的显示效果,体现一次开发、多端部署的能力。
    的头像 发表于 05-21 14:56 946次阅读
    <b class='flag-5'>鸿蒙</b>OS开发:【一次开发,多端部署】( 设置app<b class='flag-5'>页面</b>)

    鸿蒙原生应用元服务开发-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
    的头像 发表于 03-29 20:16 2147次阅读
    <b class='flag-5'>鸿蒙</b>OS开发实例:【<b class='flag-5'>页面</b>传值跳转】

    鸿蒙OS开发实例:【工具类封装-页面路由】

    import common from '@ohos.app.ability.common'; import router from '@ohos.router'封装app内的页面之间跳转、app与app之间的跳转工具类
    的头像 发表于 03-28 16:16 856次阅读
    <b class='flag-5'>鸿蒙</b>OS开发实例:【工具类封装-<b class='flag-5'>页面</b>路由】

    鸿蒙实战项目开发:【短信服务】

    概述 本示例展示了电话服务中发送短信的功能。 样例展示 涉及OpenHarmony技术特性 网络通信 难度级别 中级 基础信息 使用@ohos.telephony.sms接口展示了电话服务中发
    发表于 03-03 21:29

    Harmony 鸿蒙页面级变量的状态管理

    页面级变量的状态管理 @State、@Prop、@Link、@Provide、@Consume、@ObjectLink、@Observed和@Watch用于管理页面级变量的状态。 @State
    的头像 发表于 01-25 10:42 555次阅读
    Harmony <b class='flag-5'>鸿蒙</b><b class='flag-5'>页面</b>级变量的状态管理

    Harmony 鸿蒙页面级变量的状态管理

    页面级变量的状态管理 @State、@Prop、@Link、@Provide、@Consume、@ObjectLink、@Observed和@Watch用于管理页面级变量的状态。 @State
    发表于 01-24 20:04