首页 > 其他分享 >鸿蒙页面示例

鸿蒙页面示例

时间:2024-01-31 20:33:10浏览次数:26  
标签:鸿蒙 示例 Text Builder fontSize showText 标签 页面

@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})

    }

  }
}


标签:鸿蒙,示例,Text,Builder,fontSize,showText,标签,页面
From: https://blog.51cto.com/u_16536309/9515762

相关文章

  • ExtJS 页面单文件
    更新记录2024年1月31日初始化。ExtJS教程汇总:https://www.cnblogs.com/cqpanda/p/16328016.html页面单文件写法ExtJS用官方脚手架(SenchaCMD)生成页面,在默认情况下会生成三个文件(View、ViewController、ViewModel)。有些时候为了方便可以直接像VueJS一样只定义一个文件,可......
  • 微信小程序页面跳转传参
    A页面跳转分包B页面 //A页面携带 wx.navigateTo({        url: '/findPackage/video-detail-page/video-detail-page?skip='+skip+'&limit='+limit+'&index='+index,      })路径与参数以?相连,参数与参数之间以&相连,键值对形式传参//B页面获取onLoa......
  • 鸿蒙知识点
    1、鸿蒙上的类似adb的工具名叫hdchdc(HarmonyOSDeviceConnector)是HarmonyOS为开发人员提供的用于调试的命令行工具,通过该工具可以在window/linux/mac系统上与真实设备或者模拟器进行交互。(1)hdclisttargets(2)hdcfilesendlocalremote(3)hdcinstallpackageFile这里列举的几个命......
  • 鸿蒙小知识点
    1、鸿蒙上的类似adb的工具名叫hdchdc(HarmonyOSDeviceConnector)是HarmonyOS为开发人员提供的用于调试的命令行工具,通过该工具可以在window/linux/mac系统上与真实设备或者模拟器进行交互。(1)hdclisttargets(2)hdcfilesendlocalremote(3)hdcinstallpackageFile这里列举的几个命......
  • 对于企业来讲鸿蒙是机会还是累赘?
    企业的IT部门,工程师永远在疲于奔命的学习新的技术技能。一轮技术革命来了,还没消化透、玩明白,下一波又来了。搞IT的人,总在说,业务功能要的太急、需求变化来的太快,应接不暇。业务部门永远是难以伺候、不能满意。这对矛盾的来源在于,技术生态的多样性多元化,和技术门槛的高居不下,无法平衡......
  • [word] word打印窗口也可以进行页面设置,无需重新进入Word中设置
    在打印Word文档的过程中,我们一般要预览一下。在预览的过程中,如果发现了问题,一般要重新回到word文档中修改。实际上不需要,在打印窗口中可以直接修改。1.点击【文件】2.点击【打印】......
  • 鸿蒙二进制数组创建
    背景c++层数据都是二进制,需要转换成arrayBuffer透传到ets层给业务使用,但是鸿蒙的使用下面两个api创建出来的二进制数组数据都是错误的。接口napi_create_arraybuffer:这个接口只能创建空的二进制数组,没办法把char的内容丢进去创建napi_create_external_arraybuffer:这个接口支持......
  • vite打包配置viteCompession压缩但页面无法打开
    前言后端换了服务器地址之后前端页面就无法访问,一直提示脚本加载失败 常规做法无疑是更改base地址为'/',当然这个具体地址还得看后端的Nginx配置 but,前端在开启viteCompession并且后端也配置了gzipon,gzip_staticon的情况下一直报错,在反复试错的情况下找到了......
  • Page.ClientScript.RegisterClientScriptBlock 有时在前台页面无法注册的可能原因
    原因一:前台页面缺少<formid="form1"runat="server"></form>标签。加上即可。原因二:如果一个页面顺序执行多个Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"key","jsfunction")且RegisterClientScriptBlock方法的第二个参数为脚本的Key都为......
  • [word] word页面背景怎么打印
    在工作中有些技巧,可以快速提高工作效率,解决大部分工作,今天给大家分享word页面背景怎么打印的技巧,希望可以帮助到你。1、word背景打印设置点击文件左上角的【文件】菜单按钮ー一点击【选项】ーー点击【显示】ーー点击【打印选项】一一勾选“打印背景色和图像”,点击确定以上就是word......