【鸿蒙4.0】详解harmonyos开发语言ArkTS

news/2024/6/3 17:57:11 标签: harmonyos, 开发语言, 华为

文章目录

  • 一.什么是ArkTS?
    • 1.ArkTS的背景
    • 2.了解js,ts,ArkTS的演变
      • js(Javascript)
        • Javascript的简介
        • Javascript的特点
      • ts(Typescript)
      • ArkTS
  • 二. ArkTS的特点

一.什么是ArkTS?

1.ArkTS的背景

如官方文档所描述,ArkTS是基于Javascript以及Typescript的生态上做了进一步的扩展,进一步的提高开发效率,使用过低代码开发的老师应该会有一种感觉ArkTS像低代码一样更简洁,几行代码就能实现一个功能。以开发者的角度肯定是越简洁越好。下面来浅浅的了解一下js,ts以及ArkTS。

2.了解js,ts,ArkTS的演变

js(Javascript)

Javascript的简介

js使用来让html页面动起来的,主打的一个交互。

Javascript的特点
  • Javascript是一种解释型编程语言,他不需要编译。
  • Javascript是弱类型的,就是这个变量没有一开始声明时就规定他是什么类型。这也是他和ts最明显的不同点。
  • Javascript是跨平台性的,这个很好理解就是在什么系统上的电脑上都能开发。
  • Javascript是动态的,他可以通过事件驱动来改变一个变量的值,比如最常见的点击事件。
  • Javascript是可以操作对象的,比如操作dom对象以及创建一个对象啥的。
  • 但是Javascript开发起来效率很低,因为代码相对繁琐,每个功能都需要获取元素的dom,改变dom值

ts(Typescript)

Typescript相比于Javascript在声明变量时严格规定了变量的类型,它是在编译的时候直接提示错误。Typescript支持类、接口、继承等面向对象编程的特性,使得代码结构更清晰、可读性更高

ArkTS

ArkTS在TS上做了如下扩展:
基础语法:ArkTS定义了声明式UI描述、自定义组件和动态扩展UI元素的能力,再配合ArkUI开发框架中的系统组件及其相关的事件方法、属性方法等共同构成了UI开发的主体。
状态管理:ArkTS提供了多维度的状态管理机制。在UI开发框架中,与UI相关联的数据可以在组件内使用,也可以在不同组件层级间传递,比如父子组件之间、爷孙组件之间,还可以在应用全局范围内传递或跨设备传递。另外,从数据的传递形式来看,可分为只读的单向传递和可变更的双向传递。开发者可以灵活地利用这些能力来实现数据和UI的联动。
渲染控制:ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,渲染对应状态下的UI内容。循环渲染可从数据源中迭代获取数据,并在每次迭代过程中创建相应的组件。数据懒加载从数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。

二. ArkTS的特点

  • 运用了ts声明变量的方式更严谨
  • 运用了装饰器的方式定义自定义组件类型。组件式开发
  • 页面里面应用了声明式Ui,可以直接调用方法的形式进行页面布局。利用组件属性方法直接可以改变样式。页面逻辑更强。代码模块化。
  • 他也可以组件之间动态传值。以及变量和页面之间的双向绑定。
  • 另外还应用了class类去封装一些变量,开发效率更高。
  • 相比于其他前端框架它实现了跨多平台,可以在预览器运行,在模拟器运行,在实际手机,手表上运行。

ArkUI开发框架


http://www.niftyadmin.cn/n/5335070.html

相关文章

2024年执业医师资格考试报名注册详细流程,速速查收!

2024年医师资格考试报名比往年提前了,正逢寒假不要错过报名! 一、医师资格报名包括: 网上报名和现场确认及审核两部分 网上报名时间:2024 年1月 22 日至2月4日24 时 现场确认时间: 2024 年2月 21 日至3月5日 考点审核时间为:3月6 日至3 月 15 日 考点审核…

Python项目——久坐提醒定时器(PySide6)编写

1、介绍 使用Python编写一个久坐提醒软件。功能: 设置工作时间。设置休息时间。选择休息时是否播放音乐。休息时,软件置顶,且不能关闭。 2、工具 语言:python3.11UI设计工具:Qt designer编译器:PyCharm包…

element表格复选框回显,取消选择

this.dataList response.rowsthis.tableColumnListresponse.tableColumnListthis.queryParams.totalresponse.totalif (this.pointitle修改) {console.log("xxxx")let arrthis.dataListlet arr1this.tagsthis.$nextTick(()>{arr.forEach((row)>{arr1.forEach(…

如何发布npm包

文章目录 前言一、步骤二、案例三、常见问题四、package.json 前言 npm(Node Package Manager)是Node.js的包管理器,用于安装、卸载、更新、查看、搜索和发布Node.js包(modules)和软件。npm基于开源的JavaScript运行时…

FlinkAPI开发之处理函数

案例用到的测试数据请参考文章: Flink自定义Source模拟数据流 原文链接:https://blog.csdn.net/m0_52606060/article/details/135436048 概述 之前所介绍的流处理API,无论是基本的转换、聚合,还是更为复杂的窗口操作&#xff0c…

【笔记】语言实例比较 2. 两数之和 C++ Rust Java Python

语言实例比较 2. 两数之和 C Rust Java Python 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除…

为什么 Golang Fasthttp 选择使用 slice 而非 map 存储请求数据

文章目录 Slice vs Map:基本概念内存分配和性能Fasthttp 中的 SliceMap性能优化的深层原因HTTP Headers 的特性CPU 预加载特性 结论 Fasthttp 是一个高性能的 Golang HTTP 框架,它在设计上做了许多优化以提高性能。其中一个显著的设计选择是使用 slice 而…

GPT应用程序上线注意的问题

在将GPT应用程序上线之前,有一些重要的问题需要注意,以确保应用程序的成功运行、用户满意度和合规性。以下是一些建议,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 合规性和…