文章目录
一、HarmonyOS NEXT介绍
放弃安卓框架之后,HarmonyOS NEXT成为真正独立于安卓、iOS的操作系统,堪称是一场史无前例的脱胎换骨。在其众多新特性中,原生智能无疑是最能带给用户直观感受和体验升级的新特性之一。HarmonyOS NEXT首次将AI与OS深度融合,构筑了全新鸿蒙原生智能框架,真正开启了全新的AI时代。
鸿蒙开发者学堂
学习内容
1、鸿蒙APP开发
- ArkUI组件与交互
- ArkTS核心
- Flex布局、Grid布局
- 属性动画、转场动画
- 自定义弹窗
- 京东、支付宝实战
- 组件化开发
- 父子通信
- 跨层级通信
- UI复用、插槽
- 页面路由、页面栈
- 掘金案例实战
- 网络管理
- http、JSON格式
- promise异步编程
- 页面、组件生命周期
- 状态管理、git管理
- 饿了吗案例实战
2、能力套件开发
- 一次开发多端部署
- 三层工程架构
- 7种自适应布局能力
- 3种响应式布局能力
- 断点、媒体查询、栅格布局
- 系统能力差异兼容
- 系统能力集
- 设备传感器
- 申请应用权限
- 手机振动提醒
- 声音播放、声音控制
- 后台任务
- 开放能力集
- hms华为服务
- 调账号服务
- 地图服务
- 支付服务
- 健康服务
3、全场景开发
- 元服务
- 元服务介绍
- 元服务界面开发
- 元服务应用逻辑
- 卡片开发
- 卡片通信
- 端云一体化
- AGC控制台
- 云函数开发
- 云数据库
- 云存储开发
- 认证服务
- 万物互联
- 物联网APP开发相关知识
- IOT设备识别和信息采集
- IOT 云平台信息传输方式
- 蓝牙识别IOT设备和安装
- APP侧对感知设备的数据分析
适合人群
大学生、应届生、在职人员、鸿蒙爱好者
二、鸿蒙开发环境准备
1、开发工具下载
HarmonyOS=>一探究竟=>DevEco Studio下载
地址
根据自己电脑系统选择对应的版本下载即可,下载完成解压一下,解压完成后双击进行傻瓜式安装,安装完成打开
由于我们是第一次打开,所以默认会进行一些环境的配置,我们选择Agree我同意。
如若打开遇到下方弹窗,就是一些环境,比如
- node.js
第一个选项是选择电脑已经安装过的node,第二个是新安装。这个可以根据自己的实际选择,建议是新安装,新安装的和本地的node是不冲突的。
这一步是相关的一些依赖包的下载
2、使用DevEco Studio创建一个项目
点击creat project
选择模版,我们第一次选择第一个就好了
点击Finish创建
创建完成,点击previewer可进行预览
3、汉化界面
左上角File=>Setting=>Plugins插件=>Install=>输入chinese,在对应插件后面打钩=>点击Apply=>点击ok=>点击弹窗的Restart
可以看到已经已经汉化了
4、小结
- 安装、环境配置时,建议自定义目录
- 注意:路径中不要有 中文、特殊字符。
三、ArkTS基础语法
1、编程语言介绍
什么是ArkTS?
ArkTS是HarmonyOs生态的应用开发语言。
- ArKTS提供了声明式UI范式、状态管理支持等相应的能力,让开发者可以以更简洁、更自然的方式开发应用。
- 同时,它在保持TypeScript(简称TS)基本语法风格的基础上,进一步通过规范强化静态检查和分析,使得在程序运行之前的开发期能检测更多错误,提升代码健壮性,并实现更好的运行性能。
- 针对JS/TS并发能力支持有限的问题,ArkTS对并发编程API和能力进行了增强,
- ArkTS支持与TS/JS高效互操作,兼容TS/JS生态。
2、基础知识
声明
ArKTS中可以通过关键字let声明变量,使用const声明一个常量,并通过类型注释指定类型
- 变量声明
// 关键字 变量/常量名:类型注释=值
let count:number=0
- 常量声明
// 关键字 变量/常量名:类型注释=值
const MAX_COUNT:number=629
类型
- 基本类型::string、number、boolean等
let name:string='zhangsan'//声明字符类型
let age:number=20//声明数字类型
let isShow:boolean=true//声明布尔类型
- 引用类型 : Object、 Array、自定义类等
// 引用类型
let students: Array<string>=['xiaoming','xiaozhang','xiaowang', 'xiaoli'];
let students:string[]=['Xiaoming','Xiaozhang','Xiaowang','Xiaoli'];
class User {...}
let user:User=new User();
- 枚举类型 :Enum
// 枚举类型
enum Color{
Red,
Blues
Green
}
let favouritecolor:Color =Color.Red;
- 联合类型 :Union
允许变量的值为多个类型
// 联合类型 :Union
let luckyNum:number|string=7;
luckyNum ='seven';
- 类型别名 :Aliases
允许给一个类型取一个别名,方便理解和复用
// 类型别名 :Aliases
type Matrix=number[][];
type NullableObject =object|null;
空安全
一般来说,有时会存在声明变量时不确定初始值。在这类情况下,通常使用联合类型包含null值
// 空安全
let name:string|null = null
空安全机制的三种方式
- 使用if/else进行判空
// 1.使用if/else进行判空
if(name!=null){/*do something */}
- 使用空值合并表达式,??左边的值为null时会返回表达式右边的值
// 2.使用空值合并表达式,??左边的值为null时会返回表达式右边的值
let name:string | null = null
const res =name ??'':
- 使用?可选链,如果是null,运算符会返回undefined
// 3.使用?可选链,如果是null,运算符会返回undefined
let name:string | null ='aa';
let len = name?.length;
类型安全与类型判断
- ArkTS是类型安全的语言,编辑器会进行类型检查,实时提示错误信息
- ArkTS支持自动类型推导,没有指定类型时,ArkTS支持使用类型推断自动选择合适的类型
let meaningofLife =42;// meaningofLife 会被推测为 number类型
语句
- 条件语句
用于基于不同的条件来执行不同的动作,根据判断条件的执行结果(true或false)来决定执行的代码块。
// 生成0-1随机数
let isValid: Boolean = false;
if (Math.random() > 0.5) {
isValid = true;
} else {
isValid = false;
}
条件表达式
let isValid =Math.random()>0.5 ?true : false;
- 循环语句
用于重复执行相同的一组语句,提高效率、简化代码
// 循环语句
let students: string[] = ['Xiaoming', 'Xiaozhang', 'Xiaowang', 'xiaoli'];
// for循环语句
for (let i = 0; i < students.length; i++) {
console.log(students[i]);
}
// for...of 循环语句
for (let student of students) {
console.log(student);
}
// while循环语句
let index = 0;
while (index < students.length) {
console.log(students[index]);
index++;
}
3、函数声明和使用
- 函数
函数是一组一起执行多条语句的组合,形成可重用的代码块。通过function关键字声明要告诉编译器函数的名称、返回类型和参数以及执行的内容;
// 函数声明和使用
// 声明
function printStudentsInfo(students: string[]): void {
for (let student of students) {
console.log(student);
}
}
// 使用
printStudentsInfo(['Xiaoming','Xiaozhang ','Xiaowang ','xiaoli'])
- 箭头函数
箭头函数 /lambda表达式简化函数声明,这通常用于需要一个简单函数的地方
箭头函数的返回类型可以省略,省略时,返回类型通过函数体推断。
const printInfo =(name:string):void =>{ console.log(name)};
执行体只有一行的情况下可以省略花括号
const printInfo =(name:string)=>console.log(name);
printInfo('Xiaoming );
箭头函数常用于作为回调函数
let students: string[]=['xiaoming','xiaozhang','xiaowang','xiaoli'];students.forEach((student:string)=>console.log(student));
- 闭包函数
一个函数可以将另一个函数当做返回值,保留对内部作用域的访问。
// 闭包函数
function outerFunc(): () => string {
let count = 0
return (): string => {
count++;
return count.tostring()
}
}
let invoker =outerFunc()
console.log(invoker())//输出:1
console.log(invoker())//输出:2
- 函数类型
将一个函数声明定义为一个类型,函数参数或者返回值
// 函数类型
type returnType = () => string;//使用该类型作为返回类型
function outerFunc(): returnType {//使用该类型作为返回类型声明一个函数类型
let count = 0
return (): string => {
count++;
return count.tostring()
}
}
let invoker = outerFunc()//输出:1
console.log(invoker())//
console.log(invoker())//输出:2
4、类声明和使用
5、接口声明和使用
6、模块导入与导出
7、总结与回顾
持续更新中
✒️总结
如果这篇【文章】有帮助到你💖,希望可以给我点个赞👍,创作不易,如果有对前端端或者对python感兴趣的朋友,请多多关注💖💖💖,咱们一起探讨和努力!!!
👨🔧 个人主页 : 前端初见