哈哈笔记 | HarmonyOS Arkts学习笔记(未完)

@Extend(Text) function priceText(){
  .fontColor('#36D')
  .fontsize(18)
}
//另外@extend只能卸载全局的位置
//此处的fontSize和fontClor是Text组建的特有属性。所以必须使用@Extend(Text),表示继承Text的属性。

学习视频:

https://www.bilibili.com/video/BV1Sa4y1Z7B1?p=8&spm_id_from=pageDriver&vd_source=278c95d0a64b70f1dcef5787800ee97f

haimonyOS文档:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides-V3/start-overview-0000001478061421-V3?catalogVersion=V3

实战:

https://www.arkui.club/introduction.html

1、了解ArkTS

arkTS特点:

  • 申明式UI前端,通过方舟编译器编译(AOT技术)实现的高渲染。
  • 性能优越
  • 多系统适配
  • 与ts语言类似

2、ts语言基础

2.1变量的声明

变量类型:string 、number 、Boolean、any(任何类型)、union(联合类型)、object(对象)

2.2函数

function sayhello( name: string ):void{
  
}

//有返回值
 function sum(x:number, y:number):number {
 
 }

//箭头函数
let saghi = (name:string)=>{
  //函数体
}

2.3类和接口

  • 接口:定义规则和方法(不实现)
  • 类:用于实现方法。

2.4模块开发

  • 其实就是通过export import 实现代码复用。

3、快速入门

bundle name需要保证唯一性。

项目目录:

首页:entry\src\main\ets\pages\Index.ets

小结

  1. 代码在目录src\main\ets\pages\Index.ets下写。
  2. 装饰器@Component用于标记组件、@Entry装饰器用于表示该页面是一个入口页面,可以单独展示的。
  3. @state装饰器是一个状态监视,只要发生改变就响应,重新渲染。
  4. 任何组件都有属性方法和样式方法。

4、AtkUI组件-image组件

Image组件--展示图片

组件含有通用属性和特有属性。

网络图片需要配置网络权限。

小结

  1. 图片组件有三种方式设置图片源
  • string表示的一般都是网络图片,但是网络图片需要授权。授权要在entry\src\main\module.json5路径下授权。
"module": {
  "requestPermissions": [
    {
      "name": 'ohos.permission.INTERNET'
    }
  ],
    }
  • pimemap常常用于图片编辑的时候
  • resource:图片在本地。一般在src/main/resources路径下。这种图片的表示方式有两种。
//如果图片在media文件夹下,名叫icon.png
Image($r(app.media.icon))
//如果图片在rawfile文件夹下,图片名为icon.png
Image($rawfile(icon.png))
  1. 组件一般都有通用属性和特有属性两种。具体的组件的用法和api可以直接在代码中看。悬停在组件上查看api文档即可。
  2. width属性:
  • 数值类型 width(250)
  • 字符串 width('100%')

5、ArkUI组件-Text

小结

  1. 文本组建的可以有两个格式,一个是string格式,这个是写死的,还有一个是resource格式,这个就是可以做国际化,类似于vue2里面的用一个字符串代表一个词语。
  2. 文本的属性都可以在文档里面查得到。不在赘述。
  3. 文本中利用resource格式的时候。表示了这种字段的声明都是在resource文件夹下的。
  • base/element/string.json这个文件夹下的就是默认显示的字段内容。
  • en_US/element/string.json这个文件夹下的就是英文示的字段内容。
  • zh_CN/element/string.json这个文件夹下的就是中文显示的字段内容。

6、ArkUI组件-TextInput

小结

  1. 文本框的格式,如何申明。TextInput({ }),括号内可以填写placeholder和text。
  2. textinput的属性:通用属性就是长宽之类的,没什么好说的。其特有属性是type(),括号里面可以选择输入文本的类型。
  3. textinput的事件:本节课介绍了onChange属性。

个人理解

  1. arkTS的类型转来转去的还是挺复杂的。
  2. 这一张都是UI组件介绍,其实之后在实践的时候学习更加高效,如果时间紧张可以不用看的太认真。

7、ArkUI组件-Button

8、ArkUI组件-Slider

小结:

1、滑动条{}内都是可以选择的。其中direction是方向,可以是水平的也可以是竖直的。reverse是反转:最大值和最小值换位置。

2、其他的可以看指南。

9、ArkUI组件-Column和Row

页面布局

  • 线性布局组件
  • 常见布局属性

主轴属性名和参数:

column相当于竖屏:

row是横屏

交叉轴属性名和参数

小结

  1. 线性布局,纵向采用column,横向采用row--主要概念--主轴交叉轴。
  2. justifyContent和alignItem分别用来控制主轴和交叉轴的对齐方式的。
  3. space间距、padding内边距、margin外边距。

个人理解

  • 主要记忆主轴方向一种参数
  • 这种的布局方式其实还是很方便,我感觉比传统的css方便。因为目前学习的的内容还很有限,样式也就那几种可供选择,所以比传统的css简单。

10、ArkUI组件-循环控制

对于大量重复的代码用foreach做渲染。

foreach(){
  arr:Array,//遍历的数组
  (item:any,indea?:number)=>{
    //函数体,执行需要循环的操作
  }
  keyGenrator?:(item:any,indea?:number):string=>{
    //键生成函数,这个函数会为数组里面的每一项生成一个唯一标识。
  }
}


//条件判断
if(){
  
}else{
  
}

11、ArkUI组件-List

是一种新的布局。

List({space:10}){//listitem之间的间距
  ForEach(arr,item()=>{
    ListItem(){
      //这个ListItem只能有一个跟组件。
    }
  })
}
.listDirection(Axis.Vertivcal)//列表方向

小结

  1. list的优势:在于大于屏幕高度会有滚动条。可以横向、可以纵向布局。
  2. 样式:higtweight(),高度权重。

12、ArkUI组件-自定义组件

自定义构建函数

定义在外部,和vue3一样,先定义在使用。

定义在内部,局部的自定义函数,在内部不可以加关键字function,调用的时候要加this

@styles装饰器

定义在外部,在全局的样式可以用@styles关键字定义。 举个例子,如果一个样式的复用性很强,在很多地方都有使用,那我们可以在外面定义一个样式

@style function fullScreen(){
  //在这里定义样式
}
@Entry
@Component
struct ItemPage{
  build(){
  //如果我这里的Row用到fullScreen
    Row(){
  //这里是你的代码
	}
	.fullScreen()
  }
  }

但是如果我们把样式fullScreen卸载struct里面,我们就不用写function

@Entry
@Component
struct ItemPage{
  @style fullScreen(){
  //在这里定义样式
	}
  build(){
  //如果我这里的Row用到fullScreen
    Row(){
  //这里是你的代码
	}
	.fullScreen()
  }
}

extend语法:有的时候我们定义样式会发现有的样式是组件特有的,会报错。那我们应该用关键字@Extend

@Extend(Text) function priceText(){
  .fontColor('#36D')
  .fontsize(18)
}
//另外@extend只能卸载全局的位置
//此处的fontSize和fontClor是Text组建的特有属性。所以必须使用@Extend(Text),表示继承Text的属性。

小结

#前端##学习#
全部评论
这么超前
1 回复 分享
发布于 2023-12-25 18:04 四川

相关推荐

03-18 01:22
门头沟学院 Java
肖先生~:先别说工资,现在有个工作就不错了
点赞 评论 收藏
分享
今天周一休息,突发奇想写一篇阶段总结。如题,我已经去了一个和Java彻底毫无关联的行业。曾经我以为自己能在计算机行业发光发热,没想到刚入行一年多就当了逃兵。从最开始的热爱到现在一看到代码就厌恶,不知道自己经历了什么。所以我去干什么了?答案是:在成都当了租房销售。上班那会压力大了就念叨着去干租房中介,但是一直下不去这个决心,想着自己学了四年多的计算机知识,终究还是不甘心。终于在某一天准备八股文的时候,看着无数篇和工作内容关系不大的理论知识,那一刻下定决心,决定尝试一下销售行业,也算是给自己一个交代。后面阴差阳错的投了成都自如去当租房管家,没想到面试很顺利,在当天一百多个面试的人里面,我成为了为数不多通过的几个幸运儿之一。目前已经培训通过,正式入职,也开了单,也有压力但是每天过得很开心,真心喜欢那种和人交流的感觉,哪怕是最后没有选择找我租房。说这些也是想告诉那些大三,大四正在找Java实习而焦虑的同学:你们现在还年轻,选择很多,容错率也很高,可以尽情去尝试自己喜欢的行业和工作。不用因为某一次的面试没通过或者简历石沉大海而焦虑,更不用因为身边人都在挤编程的独木桥就强迫自己跟风。也算是自己的碎碎念吧,也希望自己能在新的领域取得一点小成就。也祝牛油工作顺利!
沉淀小子:干啥都不丢人啊,生存是必须要的,销售很考验一个人综合素质能力的,好的销售人脉和资源可不比写字楼的白领差啊
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务