Harmony学习(三)

news2024/11/25 16:39:27

1.模版字符串``

let name:string = '模版字符串'
let age:number = 18
console.log('字符串:',`${name}和${age}`)

2.字符串和数字互相转换

//字符串转数字
let str1:string = '1.1'
console.log('转换',Number(str1))   //output:  1.1
console.log('转换',parseInt(str1)) //output:  1
console.log('转换',parseFloat(str1)) //output: 1.1

//数字转字符串
let num1:number = 1
console.log('转换',num1.toString())   //output:  1
console.log('转换',num1.toFixed(2)) //output:  1.00

3.变量

  • 普通变量(不管组件内还是外):只能在初始化时渲染,后续不在刷新
  • 状态变量:需要装饰器@State修饰,改变会引起UI的渲染刷新

4.数组操作

  • 增加:unshift()从开头添加          push()从结尾添加
  • 删除:shift()从开头删        pop()从结尾删   (都会返回删除的项)
  • 任意位置删除或新增:splice(操作的起始位置,删除个数,新增的项1,新增的项2,...)
  • 打印对象数组:JSON.stringify(stuArr)
  • ForEach渲染控制:ForEach(this.titles,(item:string,index) = > {
  • })

5.Grid()  规则的行列布局

Grid(){
      ForEach([1,2,3,4,5,6,7,8,9,10,11,12],()=>{
        GridItem(){
          Column(){

          }
          .width('100%').height('100%')
          .backgroundColor(Color.Green)
          .border({
            width: 1,
            color: '#666',
            style: BorderStyle.Solid
          })
        }
      })
    }
    .backgroundColor(Color.Pink)
    .width('100%')
    .height(500)
    .columnsTemplate('1fr 1fr 1fr 1fr')
    .rowsTemplate('1fr 1fr 1fr')
    .columnsGap(5)
    .rowsGap(5)

6.badge() 角标

Badge({
            count:1,
            position:BadgePosition.RightTop,
            style:{
              fontSize:14,
              badgeSize:20,
              badgeColor:'#fa2a2d'
            }
          }){
            Column(){

            }
            .width('100%').height(200)
            .backgroundColor(Color.Green)
            .border({
              width: 1,
              color: '#666',
              style: BorderStyle.Solid
            })
          }

7.遮罩显隐控制:

  • 透明度:opacity:0=>1
  • 层级:zIndex:-1=>99

8.图片动画

  • 缩放scale: 0=>1
  • .animation({duration:500})

9.Swiper() 轮播

Swiper(){
        Image($r('app.media.ic_gallery_create'))
          .width(200)
          .fillColor(Color.Blue)
        Image($r('app.media.ic_gallery_create'))
          .width(200)
          .fillColor(Color.Blue)
        Image($r('app.media.ic_gallery_create'))
          .width(200)
          .fillColor(Color.Blue)
      }
      .width('100%').height(100)
      .loop(true)
      .autoPlay(true)
      .interval(4000)
      .vertical(false)
      .indicator(
        Indicator.dot()
          .itemWidth(20)
          .itemHeight(20)
          .color(Color.Black)
          .selectedColor(Color.Red)
          .selectedItemWidth(50)
          .selectedItemHeight(20)
      )

10.@Extend  扩展组件(样式和事件)

@Extend(组件名)

function  函数名(参数1,参数2) {}

11.@Styles 抽取通用属性、事件

全局:@Styles function setbg() {}  (不支持传参)

组件内: @Styles setbg() {}(不支持传参)

12.@Bulider 自定义构建函数(结构,样式,事件)

@Builder
function navItem(icon: ResourceStr,txt: string) {

}

13.Scroll

@Entry
@Component
struct Index {
  @State message: string = 'Hello World  哈哈哈hahahahah';
  myScroll:Scroller = new Scroller()
  build() {
    Column() {
      Scroll(this.myScroll){
        //只支持一个组件
        Column() {
          ForEach([1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3], (item: number, index: number) => {
            Text('kkkkkkk')
              .width('100%')
              .height(40)
              .fontSize(20)
              .fontWeight(FontWeight.Bold)
              .fontColor('#666')
              .backgroundColor(Color.Pink)
              .margin(5)
          })
        }
      }
      .width('100%')
      .height(500)
      .scrollable(ScrollDirection.Vertical)
      .scrollBar(BarState.Auto)
      .scrollBarColor(Color.Red)
      .scrollBarWidth(5)
      .edgeEffect(EdgeEffect.Spring)
      .backgroundColor(Color.Yellow)
      .onDidScroll(()=> {
        const y = this.myScroll.currentOffset().yOffset
        console.log('滑动距离:', `y:${y}`);
      })
      Button('控制滚动条位置')
        .width(200).height(40)
        .margin(20)
        .onClick(() => {
          this.myScroll.scrollEdge(Edge.Top)
        })
    }
  }
}

14.Tabs  容器组件

@Entry
@Component
struct Index {
  @State message: string = 'Hello World  哈哈哈hahahahah';
  @State selectedIndex:number = 0
  @Builder
  navItem(index:number, icon: ResourceStr, selectedIcon:ResourceStr, txt: string) {
    Column() {
      Image(index==this.selectedIndex?selectedIcon:icon)
        .width(30)
      Text(txt)
        .fontSize(20)
        .fontWeight(FontWeight.Bold)
        .fontColor(index==this.selectedIndex?Color.Red:Color.Black)
    }
  }

  build() {
    Tabs({barPosition:BarPosition.End}){
      TabContent(){
        Text('首页')
      }
      .tabBar(this.navItem(0,$r('app.media.app_icon'),$r('app.media.app_icon'),'首页'))

      TabContent(){
        Text('我的')
      }
      .tabBar(this.navItem(1,$r('app.media.startIcon'),$r('app.media.app_icon'),'我的'))
    }
    .vertical(false)
    .scrollable(true)
    .animationDuration(0)
    // .barMode(BarMode.Scrollable)  //滚动
    .onChange((index:number) => {
      this.selectedIndex = index
    })
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1952616.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线上环境服务器CPU飙升排查

前因 收到线上服务器CPU使用率100%的告警信息。 环境 jdk1.8CentOS Linux ;CentOS Linux 排查 查看服务器CPU使用率 果然cpu已经达到了100%了 命令 top 使用arthas工具 使用方式 arthas 执行命令java -jar arthas-boot.jar 然后执行命令 thread 看到有两个…

《如何找到自己想做的事》

Arouse Enthusiasm, Give Scope to Skill, Explore The Essence *摘其两纸 我喜欢打篮球,并不是我真的喜欢这项运动,而是我喜欢团队竞技。我喜欢看书,并不是我真喜欢阅读,而是我想要了解世界运行逻辑。寻找热爱,探寻本…

旅游城市晚高峰延长2小时见证消费新活力 啤酒节滴滴打车需求上涨超300%

进入盛夏,各地夜生活“花式上新”,夜间出行链接夜食、夜游、夜购等多元消费业态,激发经济活力。滴滴出行数据显示,7月以来,哈尔滨、珠海、贵阳、西安等多个城市打车晚高峰延长2小时以上。 22点后打车需求上涨最高 “夜…

使用阿里云云主机通过nginx搭建文件服务器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、准备基础环境二、安装配置nginx三、阿里云安全组配置安全组配置 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4ee96f38312e4771938e40f463987…

【Java Bean 映射器】通过 MapStruct 和 BeanUtils 拷贝对象的区别

目录 👋前言 👀一、环境准备 🌱二、拷贝工具使用 2.1 BeanUtils 使用 2.2 MapStruct 使用 💞️三、对比 📫四、章末 👋前言 小伙伴们大家好,最近在一些技术文章中看到了开发时经常接触的对…

小论文写不出来?一文告别没思路!SCI级新算法闪耀登场,完整代码及应用直接获取

最近稍微有点忙,事情比较多,构思灵感花费了不少时间。这次发布的算法和前几个基于数学基本思想开发的算法不一样,是一种基于动物的一种算法,从动物的本能和行为中汲取灵感。本算法的开发,灵感撰写以及完整的算法已经全…

【“微软蓝屏”事件暴露了网络安全哪些问题?】建设安全稳固的网络基础设施

目录 前言一、软件更新流程中的风险管理和质量控制机制(一)测试流程及风险识别(二)风险管理策略(三)质量控制措施 二、预防类似大规模故障的最佳方案或应急响应对策(一)冗余系统设计…

0722_驱动1 字符设备驱动框架

一、字符设备驱动框架 字符设备驱动按照字节流进行访问,并且只能顺序访问 设备号一共有32位,主设备号(高12位)次设备号(低20位) 二、注册/注销字符设备驱动API接口 2.1、注册字符设备驱动(入口) #include &…

小白学习webgis的详细路线

推荐打开boss直聘搜索相关岗位,查看岗位要求,对症下药是最快的。 第一阶段:基础知识准备 计算机基础 操作系统:理解Windows、Linux或macOS等操作系统的基本操作,学会使用命令行界面。网络基础:掌握TCP/I…

【netty系列-05】深入理解直接内存与零拷贝

Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…

谷歌再被OpenAI截胡?训练数学AI拿下IMO银牌,不及SearchGPT放了空响..

昨夜谷歌振臂高呼:我们新的数学AI,能在IMO数学竞赛达到银牌水平! 但就在谷歌发文的几个小时后,OpenAI就偷了谷歌的家: 发布新的搜索方式SearchGPT ,剑指挑战谷歌的搜索引擎。 谷歌双模型并用攻克数学难题…

如何利用业余时间做副业,在家里赚钱,来增加收入

人一生每个阶段都会有压力和烦恼,中年人更是如此。 上有老下有小,生活的重担都在一个人身上,压得人喘不过气,这些都需要钱,仅靠工资已经很难维持一家人的开支了。 所以很多人打算利用业余时间做副业,来增加…

为什么多数大数据治理项目都是失败的?Gartner调查失败率超过90%

引言:随着数据规模的爆发式增长、数据价值的凸显以及数据治理的必要性。在政策的推动、市场需求的拉动以及技术进步的支撑下,大数据治理正成为推动企业数字化转型、提升数据价值的重要手段。企业希望通过大数据治理提升数据利用率和数据价值,…

学习记录——day17 数据结构 队列 链式队列

队列介绍 1、队列也是操作受限的线性表:所有操作只能在端点处进行,其删除和插入必须在不同端进行 2、允许插入操作的一端称为队尾,允许删除操作的一端称为队头 3、特点:先进先出(FIFO) 4、分类: 顺序存储的栈称为顺序栈 链式存储的队列&a…

免费【2024】springboot 成都奥科厨具厂产品在线销售系统设计与实现

博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

将手机作为服务器运行docker服务

前言 目前手机的配置并不低,即使是2019年生产的一加七Pro,配置也有12256,CPU是骁龙855,作为服务器运行着配置绰绰有余了,二手的价格现在是400左右也能接受。相对于是自带ups电源的便携低耗docker服务器,还…

C++ unordered_map与unordered_set的模拟实现

目录 0.前言 1.哈希表(HashTable)设计 1.1设计思想 1.2 HashTable.h 1.3设计思路 2.unordered_map封装 2.1 UnorderedMap.h 2.2代码解释 2.3测试函数 3.unordered_set封装 3.1 UnorderedSet.h 3.2代码解释 3.3测试函数 4.结语 (图像由AI生成&…

项目打包与运行

前端运行时必须有与后端相同的数据库版本,数据库账号密码 右侧maven -> 展开要打包的项目 -> 生命周期 -> 双击package 打包好之后在target目录下 右键打开 在资源目录下输入cmd,执行以下命令即可运行(端口号为yml文件…

人流量为王:背后的赚钱密码深度解析

在当今商业世界中,“人流量为王”这一理念被广泛认可和奉行。但你是否认真思考过,这简单的四个字背后,究竟隐藏着怎样复杂而精妙的赚钱逻辑? 一、人流量意味着潜在客户的聚集 想象一下繁华的商业街,熙熙攘攘的人群穿梭…

7月26日JavaSE学习笔记

反射 Java是面向对象的,有对象必须先有类, 有static修饰类的属性和方法;在Java中存储了类的内容,这个内容也应该是一个对象;Java中每一个用到的类都会加载一块内存,这每一块内存都是一个对象;这…