一. ArkUI:
声明式 UI 开发方式
容器组件:
-
Column组件(){} 主要运用于垂直布局,纵向排列元素,没有滚动条
-
Row(){} 主要运用于水平布局,横向排列元素,没有滚动条
-
Stack(){} 层叠布局,层叠排列元素,没有滚动条
-
Flex(){} 弹性布局通常用来做不规则元素的自动换行,有一些性能问题 没有滚动条
-
List(){} 列表 + 元素外观拥有相同的结构 -> 有滚动条 -> new ListScroller()
-
Scroll(){} 内容超出本身 有滚动条,一个更加轻量级的组件 -> new Scroller()
-
Tabs (){} 底部导航栏和顶部导航栏 -> 有滚动
-
Grid (){} 网格布局,用来做很规则的宫格效果 -> 有滚动
-
Swiper(){} 轮播效果 -> 有滚动 -> new SwiperController()
-
SideBarContainer(){} 侧边栏 -> 没有滚动。
-
WaterFlow(){} 瀑布流,垂直方向如果高度不一致可以用它 -> 有滚动 -> new Scroller()
基础组件:
-
Text() 用字符串形式来存放文字内容。
-
Image() 存放图片,两个存放方法($r('app.maide.图片名称')),('复制图片的网络地址的链接')。
-
Button() 按钮组件,会直接显示出一个胶囊型的按钮组件,里面可写字符串文字。
功能性组件:
-
AlphabetIndexer -> 配合List组件可以做双向滚动联动效果。
-
ImageAnimator -> 帧动画。
根据要布局的页面样式选择合适的组件来进行布局
ArkUI基本语法:
容器组件(参数){
//内容
}
.属性1()
.属性2()
...
.属性N()
普通组件(参数)
.属性1()
.属性2()
...
.属性N()
二. ArkTs:
演变过程:javascript(弱类型) -> 微软TypeScript(多了一个类型管理系统)-> 鸿蒙ArkTS(类型检查更加严格 Math.random()) -> MDN上查询相关api的用法(js的api)。
- ArkTS和 TS 以及 JS 的关系:
-
- JS:JavaScript,常用于网页开发,页面的效果
- TS:TypeScript,微软开发的,比 JS 多了类型系统
- ArkTS:JS、TS能用的,他 基本 都能用,写 UI
- 注意:看文档的时候,可能需要去 JS 的文档,TS 的文档找一部分的内容
1.数据类型
(字符串,数字,布尔,联合类型,枚举类型,interface(对象),数组,function(箭头函数))
string,number,boolean, 类型1 | 类型 |...., enum 枚举的名字 { 名称 = 值.... }
interface 类型 { 属性名称:属性类型 },数组:类型[],function(()=>{})
// 变量,常量 ,状态变量
let 变量:类型 = 初始值
const 常量:类型 = 初始值
@State 变量:类型 = 初始值
2. 函数(方法)
// 2.1 普通函数写法:
function 函数名(形参:形参类型,....) {
// 方法体
// return 0 // 返回number类型的数据
// return '0' // 返回字符串类型的数据
// 如果一个函数没有显示调用return 默认返回的是undefined
}
2.2 箭头函数
let 函数名 = (形参:形参类型,....) => {
// 方法体
// return 0 // 返回number类型的数据
// return '0' // 返回字符串类型的数据
// 如果一个函数没有显示调用return 默认返回的是undefined
}
// 给事件传入函数的时候,通常我们使用的是一个不带有名字的箭头函数(匿名函数)
// 给事件传入的函数我们也称之为回调函数
.onClick(()=>{})
//调用:函数名(实参,...)
3. 数组
// 语法: let 数组变量: number[] = [1,2]
// let 数组变量: number[][] = [[1,2],[3,4]]
4. 对象
interface iDog{
dogName:string,
age:number
}
interface iPerson {
name:string,
dog:iDog
}
let obj:iPerson = { name:'小小怪',dog:{dogName:'中华田园犬',age:1} }
// 表达式 : 可以通过计算获得一个结果的小段代码 1+1
// 语句:console.log('hello') if,for,while
5. 分支结构 - if,三元表达式(三元运算符)
// if() // if(){} else{} // if(){} else if(){} else{}
// 三元表达式 条件?true的取值:false的取值
6. 循环结构 - for while , for of
// 在ArkUI的Build()函数中要做循环我们基本用的是 ForEach()
// 其他的js函数逻辑中,我们可以使用for,while,for of
Math对象的详细说明:developer.mozilla.org/zh-CN/docs/…