【最新鸿蒙应用开发】——ArkUI两种开发范式

在进行鸿蒙应用开发,openHarmony提供了一种页面开发框架叫做ArkUI方舟框架来进行页面布局的开发。

ArkUI方舟UI框架

针对不同的应用场景及技术背景,方舟UI框架提供了两种开发范式,分别是基于ArkTS的声明式开发范式(简称“声明式开发范式”)和兼容JS的类Web开发范式(简称“类Web开发范式”)。

1. 两种开发范式

  • 声明式开发范式:采用基于TypeScript声明式UI语法扩展而来的ArkTS语言,从组件、动画和状态管理三个维度提供UI绘制能力。

  • 类Web开发范式:采用经典的HMLCSSJavaScript三段式开发方式,即使用HML标签文件搭建布局、使用CSS文件描述样式、使用JavaScript文件处理逻辑。该范式更符合于Web前端开发者的使用习惯,便于快速将已有的Web应用改造成方舟UI框架应用。

2.如何选择哪一种

在开发一款新应用时,推荐采用声明式开发范式来构建UI,主要基于以下几点考虑:

  • 开发效率: 声明式开发范式更接近自然语义的编程方式,开发者可以直观地描述UI,无需关心如何实现UI绘制和渲染,开发高效简洁。

  • 应用性能: 如下图所示,两种开发范式的UI后端引擎和语言运行时是共用的,但是相比类Web开发范式声明式开发范式无需JS框架进行页面DOM管理,渲染更新链路更为精简,占用内存更少,应用性能更佳。

  • 发展趋势:声明式开发范式后续会作为主推的开发范式持续演进,为开发者提供更丰富、更强大的能力。

    方舟UI框架示意图

3. 不同模型支持的开发范式

根据所选用应用模型(Stage模型、FA模型)和页面形态(应用或服务的普通页面、卡片)的不同,对应支持的UI开发范式也有所差异。

应用模型页面形态支持的UI开发范式
Stage模型(推荐)应用或服务的页面声明式开发范式(推荐)
卡片声明式开发范式(推荐) 类Web开发范式
FA模型应用或服务的页面声明式开发范式 类Web开发范式
卡片类Web开发范式

关于两种开发范式,接下去文章会具体进行区别开,进行更详细的分享总结。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/693283.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

分享美好,高清无阻 - 直播极简联网解决方案

1、需求背景 随着移动互联网、UGC模式和直播平台的发展,网络直播的门槛日益降低,越来越多的人希望成为直播的主角。基于物联网的户外直播无线联网解决方案应运而生,满足直播者的需求。 户外直播无线联网解决方案提供了无处不在的直播体验&a…

UniAnimate:华科提出人类跳舞视频生成新框架,支持合成一分钟高清视频

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

Java 环境配置 -- Java 语言的安装、配置、编译与运行

大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 002 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进…

未来AI大模型的发展趋势

大家好,我是小悟 未来AI大模型的发展趋势无疑将是多元化、高效化、普及化以及人性化。随着技术的飞速进步,AI大模型将在各个领域中展现出更加广泛和深入的应用,成为推动社会进步的重要力量。 多元化是AI大模型发展的重要方向。随着数据量的…

vue26:vue的环境搭建

vue环境安装配置 在点击上方链接前,注意!!!!!!!! 下方的红字!!!!!!!!&am…

在 Qt Creator 上创建 ROS 项目并新建/导入 ROS 包

0、引言 ⚠️ 在开始之前,您需要确保您已经为 Qt 配置好了 ROS 开发环境了。如果您还没有配置好,可以参考这篇文章 本文将着手探讨如何在 Qt Creator 上编辑 ROS 项目(工作空间)。 1、本教程使用到的相关软件或产品 Ubuntu 20.0…

【AI基础】第四步:保姆喂饭级-langchain+chatglm2-6b+m3e-base

在第三步手动安装chatglm2-6b时,已经可以通过web进行交互。langchain重新封装了一下AI框架,提供更加友好的开发功能,类似于AI届的spring框架。langchain的安装过程也类似于上一步说的:【AI基础】第三步:纯天然手动安装…

github异常问题总结

问题1: gitgitlab.gz.cvte.cn: Permission denied (publickey). fatal: Could not read from remote repository.Please make sure you have the correct access rights and the repository exists.解决方法: 这个错误表示 GitLab 服务器拒绝了你的 SSH…

【MySQL】(基础篇二) —— MySQL初始用

MySQL初始用 目录 MySQL初始用基本语法约定选择数据库查看数据库和表其它的SHOW 在Navicat中,大部分数据库管理相关的操作都可以通过图形界面完成,这个很简单,大家可以自行探索。虽然Navicat等图形化数据库管理工具为操作和管理数据库提供了非…

【小白专用24.6.8】c#异步方法 async task调用及 await运行机制

await是C#中用于等待异步操作完成的关键字。它通常用于异步方法内部,使得在等待异步操作期间,线程可以继续执行其他操作,从而保持程序的响应性。 在使用await时,需要注意以下几点: 1. async修饰符: 使用…

PgSQL技术内幕 - psql与服务端连接与交互机制

PgSQL技术内幕 - 客户端psql与服务端连接与交互机制 简单来说,PgSQL的psql客户端向服务端发起连接请求,服务端接收到请求后,fork出一个子进程,之后由该子进程和客户端进行交互,处理客户端的SQL等,并将结果返…

用HAL库改写江科大的stm32入门-输入捕获原理图示

原理与接线: (输入捕获的结构) cubeMx: PA11:

【复现】含能量路由器的交直流混合配电网潮流计算

目录 1 主要内容 2 理论及模型 3 程序结果 4 下载链接 1 主要内容 程序复现《含能量路由器的交直流混合配电网潮流计算》,主要是对算例4.1进行建模分析,理论和方法按照文献所述。能量路由器(ER)作为新兴的电力元器件&#xff…

应用matplotlib.animation.FuncAnimation绘制摆线

上次尝试了用matplotlib.animation.ArtistAnimation绘制摆线,实际上也可以用matplotlib.animation.FuncAnimation实现同样的功能。 导入相关文件 引用的库包括numpy,matplotlib,代码如下: import numpy as np import matplotli…

字符串形成树形

字符串形成树形 有的时候我们形成树形不是以ID的关系进行匹配的而是以字符串进行形成 数据 CREATE TABLE `contract_main_org_info` (`id` bigint(20) NOT NULL COMMENT 组织单位id,`parent_id` int(11) NULL DEFAULT NULL COMMENT 父组织单位id,`org_name` varchar(255) CHA…

mysql数据库密码破解

一、Mysql数据库密码破解 ①一旦获取了网站一定的权限后,如果能够获取MSQL中保存用户数据,通过解密后,即可通过正常途径来访问数据库;一方面可以直接操作数据库中的数据,另一方面可以用来提升权限。 ②MySQL数据库用户密码跟其它…

jmeter的infludb+grafana实时监控平台

目的:可以实时查看到jmeter拷机信息 框架:将 Jmeter 的数据导入 InfluxDB ,再用 Grafana 从 InfluxDB 中获取数据并以特定的模板进行展示 性能监控平台部署实践 一、influxDB 官网:https://www.influxdata.com/downloads/ wget h…

第一篇红队笔记-百靶精讲之W1R3S-john

https://download.vulnhub.com/w1r3s/w1r3s.v1.0.1.zip 主机发现 nmap端口扫描及思路 扫描某个网段 扫描单个ip所有端口 重复扫描单个ip具体端口 udp协议再来一次 漏洞扫描 FTP渗透 尝试匿名登陆 防止文件损坏 识别加密方式-hash-identifier base64 Web目录爆破…

CAN协议简介

协议简介 can协议是一种用于控制网络的通信协议。它是一种基于广播的多主机总线网络协议,常用于工业自动化和控制领域。can协议具有高可靠性、实时性强和抗干扰能力强的特点,被广泛应用于汽车、机械、航空等领域。 can协议采用了先进的冲突检测和错误检测…

Vue2入门(安装Vue、devtools,创建Vue)以及MVVM分层思想

文章目录 1.下载并安装Vue2.使用Vue2.1 创建Vue以及挂载Vue2.2 模板语句的数据来源:data2.3 template配置项详解2.4 Vue实例和容器的关系 3.安装devtools4.MVVM分层思想5.通过vm可以访问哪些属性 1.下载并安装Vue (1)Vue是一个基于JavaScrip…