广西南宁网络营销网站连云港网站开发

diannao/2025/10/27 0:11:15/文章来源:
广西南宁网络营销网站,连云港网站开发,上海门户网站建设,seo优化好做吗基本概念 ArkTS 因为ArkTS是基于Type Script扩展而来#xff0c;是Type Script的超集#xff0c;所以也可以关注一下Type Script的语法来理解ArkTS的语法 ArkUI HarmonyOS提供了一套UI开发框架#xff0c;即方舟开发框架#xff08;ArkUI框架#xff09;。方舟开发框架…基本概念 ArkTS 因为ArkTS是基于Type Script扩展而来是Type Script的超集所以也可以关注一下Type Script的语法来理解ArkTS的语法 ArkUI HarmonyOS提供了一套UI开发框架即方舟开发框架ArkUI框架。方舟开发框架可为开发者提供应用UI开发所必需的能力比如多种组件、布局计算、动画能力、UI交互、绘制等。 开发范式 方舟开发框架针对不同目的和技术背景的开发者提供了两种开发范式 基于ArkTS的声明式开发范式简称“声明式开发范式”兼容JS的类Web开发范式简称“类Web开发范式”。以下是两种开发范式的简单对比。 开发范式名称 语言生态 UI更新方式 适用场景 适用人群 声明式开发范式 ArkTS语言 数据驱动更新 复杂度较大、团队合作度较高的程序 移动系统应用开发人员、系统应用开发人员 类Web开发范式 JS语言 数据驱动更新 界面较为简单的程序应用和卡片 Web前端开发人员 总结Flutter、SwiftUI等新的UI框架用的都是声明式开发范式oc/swift/java/kotlin传统的UI框架用的是命令式开发范式。 应用模型 概念 应用模型是HarmonyOS为开发者提供的应用程序所需能力的抽象提炼它提供了应用程序必备的组件和运行机制。有了应用模型开发者可以基于一套统一的模型进行应用开发使应用开发更简单、高效。请见应用模型的构成要素。 随着系统的演进发展HarmonyOS先后提供了两种应用模型 FAFeature Ability模型 HarmonyOS API 7开始支持的模型已经不再主推。FA模型开发可见FA模型开发概述。Stage模型 HarmonyOS API 9开始新增的模型是目前主推且会长期演进的模型。在该模型中由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”因此称这种应用模型为Stage模型。Stage模型开发可见Stage模型开发概述。 FA模型和Stage模型的整体架构和设计思想等更多区别请见应用模型解读。 快速入门提供了一个含有两个页面的开发实例并使用了不同的开发语言或不同的应用模型进行开发以便开发者理解以上基本概念及应用开发流程。 说明我们用的是基于ArkTS声明式开发范式和Stage模型架构。 构建第一个ArkTS应用Stage模型 文档中心 应用程序包基础知识 了解应用程序包基础知识对于理解工程结构、编译构建、模块化等有帮助。 华为官方参考文档文档中心 Stage模型应用程序包结构 文档中心 多HAP构建视图 文档中心 共享包概述 HAPHAR静态共享包构建多份嵌入到各个HAPHSP动态共享包只构建一份 文档中心 语言入门 Type Script 基础教程 因为ArkTS是基于Type Script扩展而来是Type Script的超集所以也可以关注一下Type Script的语法来理解ArkTS的语法 Type Script官方教程TypeScript 教程 | 菜鸟教程 主要关注点 1.基础语法编译产物 2.基础数据类型 3.变量声明 4.联合类型 5.接口类 6.命名空间 ArkTS 特性约束 文档中心 强制使用静态类型不支持any类型显式初始化类的属性 ts class Person {name: string // undefinedsetName(n: string): void {this.name n}getName(): string {// 开发者使用string作为返回类型这隐藏了name可能为undefined的事实。// 更合适的做法是将返回类型标注为string | undefined以告诉开发者这个API所有可能的返回值的类型。return this.name} }let buddy new Person() // 假设代码中没有对name的赋值例如没有调用buddy.setName(John) console.log(buddy.getName().length); // 运行时异常name is undefined arkts: class Person {name: string // name?: string 可以为undefinedsetName(n: string): void {this.name n}// 类型为string不可能为null或者undefinedgetName(): string {return this.name} }let buddy new Person() // 假设代码中没有对name的赋值例如没有调用buddy.setName(John) console.log(buddy.getName().length); // 0, 没有运行时异常 允许.ets文件import.ets/.ts/.js文件源码, 不允许.ts/.js文件import.ets文件源码禁止运行时改变对象类型 class Point {public x: number 0public y: number 0constructor(x: number, y: number) {this.x xthis.y y} }// 无法从对象中删除某个属性从而确保所有Point对象都具有属性x let p1 new Point(1.0, 1.0) delete p1.x // 在TypeScript和ArkTS中都会产生编译时错误 delete (p1 as any).x // 在TypeScript中不会报错在ArkTS中会产生编译时错误// Point类没有定义命名为z的属性在程序运行时也无法添加该属性 let p2 new Point(2.0, 2.0) p2.z Label; // 在TypeScript和ArkTS中都会产生编译时错误 (p2 as any).z Label // 在TypeScript中不会报错在ArkTS中会产生编译时错误// 类的定义确保了所有Point对象只有属性x和y并且无法被添加其他属性 let p3 new Point(3.0, 3.0) let prop Symbol(); // 在TypeScript中不会报错在ArkTS中会产生编译时错误 (p3 as any)[prop] p3.x // 在TypeScript中不会报错在ArkTS中会产生编译时错误 p3[prop] p3.x // 在TypeScript和ArkTS中都会产生编译时错误// 类的定义确保了所有Point对象的属性x和y都具有number类型因此无法将其他类型的值赋值给它们 let p4 new Point(4.0, 4.0) p4.x Hello!; // 在TypeScript和ArkTS中都会产生编译时错误 (p4 as any).x Hello! // 在TypeScript中不会报错在ArkTS中会产生编译时错误// 使用符合类定义的Point对象 function distance(p1: Point, p2: Point): number {return Math.sqrt((p2.x - p1.x) * (p2.x - p1.x) (p2.y - p1.y) * (p2.y - p1.y)) } let p5 new Point(5.0, 5.0) let p6 new Point(6.0, 6.0) console.log(Distance between p5 and p6: distance(p5, p6)) 使用let不使用var。let关键字可以在块级作用域中声明变量帮助程序员避免错误。因此ArkTS不支持var请使用let声明变量。ArkTS不支持any和unknown类型。显式指定具体类型。使用箭头函数而非函数表达式 ts let f function (s: string) {console.log(s) } arkts: let f (s: string) {console.log(s) } ArkTS基础 ArkTS华为官方文档文档中心 ArkTS语言是TypeScript的超集 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript简称TS生态基础上做了进一步扩展继承了TS的所有特性是TS的超集。因此在学习ArkTS语言之前建议开发者具备TS语言开发能力。 ArkUI基础 声明式UI 声明式UI使用代码直接编写的UI组件执行代码得到对应的渲染组件执行渲染。 命令式UI首先需要解析XML内容映射到对应的View再进行渲染。 当前ArkTS在TS基础上主要扩展了声明式UI能力让开发者以更简洁、更自然的方式开发高性能应用。当前扩展的声明式UI包括如下特性。 基本UI描述ArkTS定义了各种装饰器、自定义组件、UI描述机制再配合UI开发框架中的UI内置组件、事件方法、属性方法等共同构成了UI开发的主体。状态管理ArkTS提供了多维度的状态管理机制在UI开发框架中和UI相关联的数据不仅可以在组件内使用还可以在不同组件层级间传递比如父子组件之间、爷孙组件之间也可以是全局范围内的传递还可以是 跨设备传递。另外从数据的传递形式来看可分为只读的单向传递和可变更的双向传递。开发者可以灵活的利用这些能力来实现数据和UI的联动。动态构建UI元素ArkTS提供了动态构建UI元素的能力不仅可以自定义组件内部的UI结构还可复用组件样式扩展原生组件。渲染控制ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态渲染对应状态下的部分内容。循环渲染可从数据源中迭代获取数据并在每次迭代过程中创建相应的组件。使用限制与扩展ArkTS在使用过程中存在限制与约束同时也扩展了双向绑定等能力。 未来ArkTS会结合应用开发/运行的需求持续演进逐步提供并行和并发能力增强、类型系统增强、分布式开发范式等更多特性。 图解和代码示例 装饰器 用于装饰类、结构、方法以及变量赋予其特殊的含义如上述示例中Entry、Component和State都是装饰器。 具体而言Component表示这是个自定义组件Entry则表示这是个入口组件State表示组件中的状态变量这个状态变换会引起UI变更。自定义组件可复用的UI单元可组合其他组件如上述被Component装饰的struct Hello。UI描述声明式的方法来描述UI的结构例如build()方法中的代码块。内置组件ArkTS中默认内置的基本组件和布局组件开发者可以直接调用如Column、Text、Divider、Button等。属性方法用于组件属性的配置如fontSize()、width()、height()、color()等可通过链式调用的方式设置多项属性。事件方法用于添加组件对事件的响应逻辑统一通过事件方法进行设置如跟随在Button后面的onClick()。 代码实例 Entry Component struct Demo {State message: string Hello Worldbuild() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold).onClick((){//点击事件})}.width(100%)}.height(100%)} } struct自定义组件可以基于struct实现不能有继承关系对于struct的实例化可以省略new。build函数作为UI描述的入口。属性配置width、 fontSize等。事件配置onClick事件。 自己的思考 创建组件 组件参数必选可选 链式调用属性 链式调用事件箭头函数不需要bind(this), 其他方式需要 嵌套组件/子组件与flutter不同的是ArkTS中的Column/Row之内的都属于容器组件可以设置背景色flutter中属于布局组件无法设置背景色等容器属性。 自定义组件 考虑代码可复用性、业务逻辑与UI分离后续版本演进 自定义组件具有以下特点 可组合允许开发者组合使用系统组件、及其属性和方法。可重用自定义组件可以被其他组件重用并作为不同的实例在不同的父组件或容器中使用。数据驱动UI更新通过状态变量的改变来驱动UI的刷新。 两个装饰器Component, Builder 状态管理 文档中心 ArkTS提供了多维度的状态管理机制在UI开发框架中和UI相关联的数据不仅可以在组件内使用还可以在不同组件层级间传递比如父子组件之间、爷孙组件之间也可以是全局范围内的传递。另外从数据的传递形式来看可分为只读的单向传递和可变更的双向传递。开发者可以灵活的利用这些能力来实现数据和UI的联动。 页面级状态管理 装饰器 装饰内容 说明 State 基本数据类型类数组 修饰的状态数据被修改时会触发组件的build方法进行UI界面更新。 Prop 基本数据类型 修改后的状态数据用于在父组件和子组件之间建立单向数据依赖关系。修改父组件关联数据时更新当前组件的UI。 Link 基本数据类型类数组 父子组件之间的双向数据绑定父组件的内部状态数据作为数据源任何一方所做的修改都会反映给另一方。 Observed 类 Observed应用于类表示该类中的数据变更被UI页面管理。 ObjectLink 被Observed所装饰类的对象 装饰的状态数据被修改时在父组件或者其他兄弟组件内与它关联的状态数据所在的组件都会更新UI。 Consume 基本数据类型类数组 Consume装饰的变量在感知到Provide装饰的变量更新后会触发当前自定义组件的重新渲染。 Provide 基本数据类型类数组 Provide作为数据的提供方可以更新其子孙节点的数据并触发页面渲染。 应用级状态管理 AppStorage是整个UI应用程序状态的中心“数据库”UI框架会针对应用程序创建单例AppStorage对象并提供相应的装饰器和接口供应用程序使用。 StorageLinkStorageLink(name)的原理类似于Consume(name)不同的是该给定名称的链接对象是从AppStorage中获得的在UI组件和AppStorage之间建立双向绑定同步数据。StoragePropStorageProp(name)将UI组件属性与AppStorage进行单向同步AppStorage中值的更改会更新组件中的属性但UI组件无法更改AppStorage中的属性值。AppStorage还提供用于业务逻辑实现的API用于添加、读取、修改和删除应用程序的状态属性此API所做的更改会导致修改的状态数据同步到UI组件上进行UI更新。PersistentStorage类提供了一些静态方法用来管理应用持久化数据可以将特定标记的持久化数据链接到AppStorage中并由AppStorage接口访问对应持久化数据或者通过StorageLink装饰器来访问对应key的变量。Environment是框架在应用程序启动时创建的单例对象它为AppStorage提供了一系列应用程序需要的环境状态属性这些属性描述了应用程序运行的设备环境。 渲染控制 条件渲染可以通过条件渲染控制组件的显示隐藏。 Column() {if (this.count 0) {Text(count is negative).fontSize(14)} else if (this.count % 2 0) {Text(count is even).fontSize(14)} else {Text(count is odd).fontSize(14)} } 循环渲染渲染列表数据。 ForEach(arr: any[], itemGenerator: (item: any, index?: number) void,keyGenerator?: (item: any, index?: number) string ) 数据懒加载应用于list、gride等列表数据渲染只渲染可是页面以及前后的item的预加载。 LazyForEach(dataSource: IDataSource, itemGenerator: (item: any) void, keyGenerator?: (item: any) string ): void 异步并发(对标flutter的事件队列机制) Promise - Futrue async/await - async/await

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

江苏水利厅建设网站wordpress微网站

卖萌屋的妹子们(划掉)作者团整理的算法工程师思维导图,求职/自我提升/查漏补缺神器。该手册一共分为数据结构与算法、数学基础、统计机器学习和深度学习四个部分。点击这里查看具体使用指南。该手册有两种获取方式:公众号后台回复…

跨境电商平台有哪些营销方式网站推广优化平台

函数模板机制结论 编译器并不是把函数模板处理成能狗处理任何类型的函数函数模板通过具体类型产生不同的函数编译器会对函数模板进行两次编译,在声明的地方对模板代码的本身进行编译,在调用的地方对参数替换后代码进行编译在编译器编译阶段,…

买域名不建网站制作图片的软件加图免费

网址链接:中国五矿集团有限公司采购电子商务平台 定位到数据包,载荷中param是一个加密参数。 每一个数据包前都有一个public返回公钥。 点击查看返回的数据 如何定位参数加密位置? 复制公钥包url的后面,进行搜索 ,查…

网站改版设计注意事项heroku wordpress

原标题:又被iPhone闹钟坑了?解决闹钟不响问题看这里!你有没有过这样的体验,早上醒来,闹钟还没响,内心想:真好,还可以再睡会。拿起手机想看看还能再睡多久,结果……我的天…

上海做网站开发的公司有哪些个人备案做视频网站

工业级PoE交换机应用非常广泛,许多供电不方便的项目基本都采用了工业级PoE交换机来进行数据传输通信,而且大都是非网管型的,即插即用,配置简单,非常方便!但你知道它是如何进行工作的吗?我们在使…

有哪些做app的网站网站管理后台源码

Amphenol的信号完整性工程师杰森埃里森(Jason Ellison )Amphenol(安费诺) ICC的高级职员信号完整性工程师杰森埃里森(Jason Ellison )深入了解了网络,给予EE(电子)社区以及他的开源信号完整性项目的重要性。信号完整性工程与其他EE(电子)领域相比如何?他…

wordpress 建站 域名中国建设银行春招网站

很多小伙伴都会在工作中使用code-server,比如说远程办公,当你需要在家访问你的工作环境,亦或者是你们公司的Docker是放入服务器中。code-server 无疑是最好的选择,它可以让你通过互联网安全地连接到远程服务器上的开发环境并且使用…

免费商城网站建站系统在线做数据图的网站有哪些

1、 Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指dalivk的虚拟机。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。而每一个DVM都是在Linux 中的一个进程,所以说可以认为是同一个概念。 2、…

请人做彩票网站多少钱网店美工名词解释

现在系统都服务化,.net core 实现服务化的方式有很多,我们通过grpc实现客户端、服务端通信。grpc(https://grpc.io/)是google发布的一个开源、高性能、通用RPC(Remote Procedure Call)框架,使用HTTP/2协议,…

山东做网站找哪家好中铁建设集团门户网站登录

前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行。当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for desktop中启用就可以了。但是我发现,启用了k8s后,Docker for desktop会消耗大量的系统资源…

做网站需要花多少钱怎样使用网站模板

在getView()时,通过判断选择加载不同的布局。 点击某个item的时候,变为foucus状态,其他的items还原。 下面用两个方法给item设置两个不同的布局。 //foucus状态,显示一个ImageViewprivate View addFocusView(int i) {ImageView…

1cpu0.5g服务器用来做网站wordpress主机需要多大

思路:往二叉搜索树中插入一个值,树的结构有多种符合的情况,那我们可以选一种最容易的插入方式,反正只需要插入一个值而已,我们不难发现,不管插入什么值,都可以安排插入到叶子节点上。 再利用二叉…

合肥网站制作价格湖南省郴州市桂阳县邮政编码

8.编写代码类 每个分离的函数可以执行一个明确的任务。任务越简单,编写与测试这个函数就越简单,当然也不要将这个函数分得太小——若将程序分成太多的小个体,读起来就会很困难。 使用继承可以重载操作。我们可以替换成一个大的Display()函数&…

网站开发收税淘客联盟做任务网站

请求WebApi的几种方式目前所了解的请求WebAPI的方式有通过后台访问api 和通过js 直接访问api接口 首先介绍下通过后台访问api的方法,可以使用HttpClient的方式也可以使用WebRequest的方式 1、HttpClient的方式 (1)Get请求 string url "…

手机网站制作代理商网站的v2信誉认证怎么做

hello,大家好,我是贝格前端工场,从这期开始分享行业网站该如何规划和建设,本期从人力资源网站开始说起。 建设人力资源官网是企业展示自身人力资源管理能力,吸引人才,提升企业形象的重要途径。以下是建设人…

公司网站制作有哪些注意事项跨境电商营销推广

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 知道公式后就很简单了,利用for循环,第几行i1就等于几,当然python中是没有…

长安网站建设免费咨询WordPress到底有什么好

有些时候我们如果绑定了某个mac,那么其他用mac就无法上网,应该怎么修改呢?学习啦小编从网上搜集整理了3种修改安卓手机mac 地址的方法。修改安卓手机mac 地址的方法修改安卓手机mac 地址的方法第一种:软件法下面介绍一款软件 叫物理地址修改…

哈尔滨模板做网站如何建个网站

分片备份命令参考:适合大数据库并行备份提高备份速度 对于超大数据库,混合有小文件和大文件表空间,section size 表示分片,大小一般大于32G,可结合通道数量设置最佳值。 run { allocate channel t1 type disk; alloc…

网站对联代码div电子商务网站推广的目的

第一章 浏览器生成信息 1.1 生成HTTP请求信息 1.1.1 URL Uniform Resource Locator, 统一资源定位符。就是网址。 不同的URL能够用来判断使用哪种功能来访问相应的数据,比如访问Web服务器就要用”http:”,而访问FTP服务器用”ftp:”。 FTP&#xff…

有没有做网站源代码 修改的网站建设费用上海

单纤光纤收发器:接收发送的数据在一根光纤上传输顾名思义,单纤设备可以节省一半的光纤,即在一根光纤上实现数据的接收和发送,在光纤资源紧张的地方十分适用。那么,单模单纤的光纤收发器A、B端的位置可以互换吗&#xf…