哈哈笔记 | 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 四川

相关推荐

06-17 12:05
已编辑
南昌大学 Java
没想到我也能一周速通字节,javaer简历boss上被字节的测开捞了,项目是点评和rpc,之前0实习。简单说下时间线和面试内容吧,三面都是温柔的小姐姐,面试体验很好。总结来说基本没有问常规八股,都是围绕项目细节展开的场景问题,开放性问题,然后带一点八股。⌚️投递时间:5.28👋一面:6.9 40min1.自我介绍2.项目拷打(超卖问题怎么解决的,由此展开聊了很久,各种细节拷打)3.算法题:将长度为n的数组分成m个和相等的子数组,求m的最大值,非hot100原题,leetcode698有道类似的,只给了10分钟,时间有点短没完全写出来,本来感觉都凉了但还是放过我了,感恩。4.高考成绩如何实现排...
一笑而过2222:一、抖音App长期无响应原因分析 1. 客户端问题:App版本过旧存在兼容性缺陷或代码逻辑错误;本地缓存、用户数据损坏影响加载;手机系统版本低、硬件性能不足导致不兼容。 2. 网络问题:网络信号差、无网络或DNS解析失败;代理设置错误、企业网络拦截抖音域名。 3. 服务端问题:启动依赖的API响应慢、服务端故障;CDN静态资源下载超时。 4. 第三方依赖问题:广告、推送等SDK初始化异常;系统服务未启用或关键权限缺失。 5. 其他原因:系统时间错误、后台应用抢占资源;用户频繁点击启动图标引发冲突。 二、电商平台兑奖系统测试用例 1. 功能测试:验证正常兑换、积分不足、限量商品重复兑换、库存实时更新及兑换记录查询功能。 2. 兼容性测试:在不同操作系统、浏览器环境下,确保功能正常和UI适配。 3. 性能与安全测试:模拟高并发检验系统稳定性;测试接口防刷机制;防御SQL注入攻击。 4. 异常场景测试:覆盖断网、服务端数据回滚、奖品过期等异常情况处理。 5. 用户体验测试:评估兑换流程是否简洁,错误提示是否明确,页面加载速度是否达标。 三、扩展建议 使用Firebase Crashlytics等工具上报启动日志排查抖音无响应问题;针对兑奖系统进行压测,重点监控TPS、错误率及响应时间 。
点赞 评论 收藏
分享
学java时间比较短不到三个月,基本的技术栈都过了一遍就是都不太深,有个小项目。是继续找实习还是沉淀准备秋招呢?找实习的话会花很多时间在八股,放弃的话又怕秋招简历太难看。有无大佬支招
今天java了吗:1.一定要找实习,实习不一定要去,但是找实习过程中的面试经验和心态经验才是最重要的 2.八股本来就是大头,甚至比项目重要 3.这个时间段也是面试比较多的阶段,可以抓住机会锻炼。面试才会发现自己的不足,感觉自己会了和能给面试官娓娓道来是两码事
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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