ArkTs理论知识大概浏览

游戏看法

登上我的地球Online,看着世界群的消息列表,铺天盖地的消息迎面而来,这个世界的用户似乎涌入的比较多。服务器也加速了游戏的进程,战争频发,网络中出现了许多网络红人,他们靠着流量出现在本不该出现的地方,我突然想起《周易·系辞下》的一句话:‘德不配位,必有殃灾。’其实也不然,来人可听过鲜衣怒马少年郎?

哈哈哈,插个题外话而已。这个游戏的真真假假已太多,我的角色只有可怜的几十年存在时间,玩游戏嘛,当然角色越厉害越好喽。为了更厉害,我决定做些什么了,首先,要想玩好这个游戏,我看了太多的攻略,最重要的一点就是信息差,信息的获取能力!这是非常重要的,那么在我们海量的获取信息时,有一个厉害的功能就凸显出来了,我们需要分析出什么是真假,别人说的真的就是真的吗?我们都只是简单的获取信息,那么我们为什么不分析一下信息的真假?詹姆斯·瓦特就是蒸汽机的发明者?爱迪生发明了灯泡?这就是真的吗,你怎么知道就是他们发明的?当然这都是谬论。那么关于其他的呢,圆就是完全对称的?π就是算不尽的?你算过没有?对嘛,别说我误导你让你对这个游戏怀疑了,我只是想说,保持一个对这个世界提出疑问质疑的能力。

不要跟着NPC随大流,我不得不提这一点,为了至少使当下能有财富重新分配的能力,还是回归咱们的HarmonyOs,-2023年8月4日,HarmonyOS 4.0操作系统正式发布。爆料2024年:预计推出HarmonyOS Next。鸿蒙生态迎接挑战:单一设备延伸到多设备、厚重应用模式到轻量化服务模式 集中化分发到AI加持下的智慧分发、纯软件到软硬芯协同的AI能力。

切记:学好编程不能只看,我可以边看华为开发者联盟视频学习,一边实践,跟上节奏,大家一块学,才会有源源不断的动力。

一、华为开发者联盟

首先注册华为开发者联盟账号,并进行实名认证,这将有助于我获取HarmonyOS课程学习以及和开发者交流的机会。

华为开发者联盟-智能终端能力开放,共建开发者生态 (huawei.com)

二、ArkTs

ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。ArkTS则是TypeScript的超集,它扩展了 TypeScript的语法。TypeScript是JavaScript的超集,它扩展了 JavaScript 的语法。首先回顾学习一下TypeScript。

(一)TypeScript

TypeScript支持布尔型、数组、字符串等数字类型。“我”来快速过一眼。

1、布尔

let a: boolean = true;

let b: boolean = false;

2、数字

TypeScript里的所有数字都是浮点数,除了支持十进制,还支持二进制、八进制、十六进制。
let a: number = 2023;
let b: number = 0b11111100111;  //二进制

let c: number = 0o1234567 // 0o 八进制
let d: number = 0x123abcdef //0x 十六进制

3、字符串

使用 string表示文本数据类型
let name: string = "Jacky";
name = "Tom";

4、数组

let list: number[] = [1, 2, 3];
let list: Array<number> = [1, 2, 3];

5、元组

let x: [string, number];
x = ['hello', 10];

6、枚举(enum)

enum Color {Red, Green, Blue};
let c: Color = Color.Green;

7、Unknown

编程使用,用于不确定数字类型

let notSure: unknown = 4;
notSure = 'maybe a string instead';
notSure = false;

8、联合类型

联合类型取值多种类型的一种

 let myFavoriteNumber: string | number;

 myFavoriteNumber = 'seven';

 myFavoriteNumber = 7;

9、函数

// 有名函数
function add(x: number, y: number): number {
  return x + y;
}

// 匿名函数:通常需要临时定义一个函数并在某个地方立即调用它的情况下使用
let myAdd = function (x: number, y: number) : number{
  return x + y;
};

10、箭头函数

它是定义匿名函数的简写语法,它省略了function关键字。括号内是函数的入参,可以有0到多个参数。

let arrowFun = ( [param1, parma2,…param n] )=> {
    // 代码块
}

调用

arrowFun(param1, parma2,…param n)

11、类

定义类的关键字为 class,后面紧跟类名。

class Person {  //private 封装私有化成员属性
  private name: string //定义属性类型
  private age: number

  constructor(name: string, age: number) {  
    this.name = name;  //前一个name为类的属性,后一个name指一个函数的一个参数,下同。
    this.age = age;
  }

  public getPersonInfo(): string {
    return `My name is ${this.name} and age is ${this.age}`;
  }
}

调用类

let person1 = new Person('Jacky', 18);
person1.getPersonInfo();

(二)ArkTs基础认识

1、Index中的代码为例

这是刚新建文件我运行出HelloWorld的Index中的代码,我需要对这些代码组件进行详细的认识和了解,先把Index中的代码简单了解一下。

  

“我”可以对“fontSize”“width”“height”中的数字进行修改,再在右边的previewer中进行查看,有趣有趣,Hello World 在不停变换位置和大小。

(二)ArkTs装饰器

1、系统组件

我们先简单见识认识一下代码和格式,方便接下来的熟练使用。

1.1 Text

Text('hello')
  .fontSize(20)
  .fontColor(Color.Red)
  .fontWeight(FontWeight.Bold)

1.2 Button

Button('Click me')
  .onClick(() => {
    this.myText = 'ArkUI';
  })

1.3 Image

Image('meinv.jpg')
  .alt('error.jpg')  
  .width(100)  
  .height(100)

1.4 TextInput

2、容器组件

Column、Row、Stack、List等

Row(){

Column() {
  Text('Hello')
    .fontSize(100)
  Divider()
  Text(this.myText)
    .fontSize(100)
    .fontColor(Color.Red)
}

}

3、自定义组件

可复用的UI单元,可组合其他组件,将UI进行封装,用户自定义组件。

例如:定义一个组件

@Component    //struct被@Component装饰后具备组件化的能力,需要实现build方法描述UI,一个struct只能被一个@Component装饰。


struct Title{       //自定义组件基于struct实现,struct + 自定义组件名 + {...}
....
build() {            //自定义组件中必须定义build()方法进行描述
....
           }
}

组件中还能包含另一个自定义组件,实现自定义组件的重用,被使用的组件为子组件。

Title组件
@Entry                //默认的页面入口组件,一个页面只有一个
@Component
struct RankPage {
...
build() {
   Column(){
      Title()
   }
}

我们需要将自定义的组件导出以供外部使用,我们需要用export导出组件

export struct ***{

.....

build(){

}

}

使用import来导出组件

import {****} from '../**/***';

(三)ArkTs渲染控制

通过渲染控制语法能便捷控制UI界面

1、if/else:条件渲染

允许if/else在容器组件内使用,通过条件渲染语句构建不同的子组件。if、else if后跟随的状态判断中使用的状态变量值变化时,条件渲染语句会进行更新。

if(条件){
  组件
}else{
  组件
}

2、ForEach循环渲染

ForEach接口基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。循环渲染使用ForEach迭代数组,为每个数组项创建相应的组件,能够快速的创建出组件,常用于需要显示很多组件(例如:排行榜)

ForEach有三个参数,第一个为数组。第二个为子组件生成函数,为数据源中的每个数组项生成子组件。第三个为键值生成器,用于给数据项生成唯一且稳定的键值。

  ForEach(this.product,                //第一个参数

(item) => {                                    //
          Row() {                                          //  第二个参数
            Text(item).fontSize(30)               //
          }                                                   //


        }, (item) => {                                 //第三个参数
          return item
        })

一路寒风身如絮, 命海沉浮客独行。坚信自己能行,华为近期大力鼓励学习鸿蒙语言,我们与全国高校共同学习,资源也是一样,为什么我们不行?接下来我们将做一个简单的跳转案例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值