运维
文章平均质量分 71
二当家的素材网
美好的人眼里映出的世界也是美好的~
展开
-
15年老程序员的内心独白
代码的优化、架构的改进、技术的革新,每一步都离不开不断学习与实践的积累。十五年前,我怀揣着对技术的无限热爱和对未来的美好憧憬,踏上了程序员的职业道路。那时的我,充满激情与活力,渴望用代码改变世界。每当看到自己的代码真正被应用,看到用户因我的工作而受益,我感到由衷的欣慰和满足。我希望在接下来的日子里,继续保持对技术的热爱,不断探索新的领域,不断突破自我。同时,我也希望能将自己的经验和知识传递给更多的年轻程序员,帮助他们在技术的道路上走得更远。那份对技术的热爱,那份对创新的执着,将永远伴随着我,继续前行。原创 2024-06-11 11:12:35 · 297 阅读 · 0 评论 -
构建第一个ArkTS应用之@ExtensionAbility组件
各类型的ExtensionAbility组件均由相应的系统服务统一管理,例如InputMethodExtensionAbility组件由输入法管理服务统一管理。:WORK_SCHEDULER类型的ExtensionAbility组件,用于提供延迟任务注册、取消、查询的能力。ExtensionAbility组件是基于特定场景提供的应用组件,以便满足更多的使用场景。:FORM类型的ExtensionAbility组件,用于提供服务卡片场景相关能力。每一个具体场景对应一个。原创 2024-05-17 15:56:48 · 185 阅读 · 0 评论 -
构建第一个ArkTS应用之@UIAbility组件间交互(设备内)
UIAbility是系统调度的最小单元。在设备内的功能模块之间跳转时,会涉及到启动特定的UIAbility,该UIAbility可以是应用内的其他UIAbility,也可以是其他应用的UIAbility(例如启动三方支付UIAbility)。本章节将从如下场景分别介绍设备内UIAbility间的交互方式。原创 2024-05-17 15:55:24 · 756 阅读 · 0 评论 -
构建第一个ArkTS应用之@UIAbility组件基本用法
UIAbility组件的基本用法包括:指定UIAbility的启动页面以及获取UIAbility的上下文。原创 2024-05-16 12:41:40 · 421 阅读 · 0 评论 -
构建第一个ArkTS应用之@UIAbility组件启动模式
UIAbility的启动模式是指UIAbility实例在启动时的不同呈现状态。原创 2024-05-15 16:11:34 · 714 阅读 · 0 评论 -
构建第一个ArkTS应用之@UIAbility组件生命周期
当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过UIAbility实例的创建和销毁,或者UIAbility实例发生了前后台的状态切换。UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态,如下图所示。图1UIAbility生命周期状态。原创 2024-05-15 16:07:57 · 875 阅读 · 0 评论 -
构建第一个ArkTS应用之@UIAbility组件概述
UIAbility组件是一种包含UI界面的应用组件,主要用于和用户交互。UIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口;一个UIAbility组件中可以通过多个页面来实现一个功能模块。每一个UIAbility组件实例,都对应于一个最近任务列表中的任务。原创 2024-05-15 16:05:08 · 347 阅读 · 0 评论 -
构建第一个ArkTS应用之@ Stage应用/组件级配置
在开发应用时,需要配置应用的一些标签,例如应用的包名、图标等标识特征的属性。图标和标签通常一起配置,可以分为应用图标、应用标签和入口图标、入口标签,分别对应。中配置bundleName标签,该标签用于标识应用的唯一性。中的icon和label标签。应用图标和标签是在设置应用中使用,例如设置应用中的应用列表。Stage模型的应用需要配置应用图标和应用标签。应用图标和标签是在设置应用中使用,例如设置应用中的应用列表,会显示出对应的图标和标签。应用图标需配置为图片的资源索引,配置完成后,该图片即为应用的图标。原创 2024-05-15 16:04:08 · 338 阅读 · 0 评论 -
构建第一个ArkTS应用之@Stage模型开发概述
例如,用户在桌面创建应用的卡片,需要应用开发者从FormExtensionAbility派生,实现其中的回调函数,并在配置文件中配置该能力。例如,图库类应用可以在UIAbility组件中展示图片瀑布流,在用户选择某个图片后,在新的页面中展示图片的详细内容。Stage模型提供UIAbility和ExtensionAbility两种类型的组件,这两种组件都有具体的类承载,支持面向对象的开发方式。基于Stage模型开发应用时,在应用模型部分,涉及如下开发过程。本章节介绍Stage模型中应用配置文件的开发要求。原创 2024-05-15 16:03:06 · 284 阅读 · 0 评论 -
构建第一个ArkTS应用之@应用模型解读
因此在Stage模型中,应用组件之间可以方便的共享对象和状态,同时减少复杂应用运行对内存的占用。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,因此称这种应用模型为Stage模型。一个进程可以运行多个应用组件实例,每个应用组件实例运行在一个单独的ArkTS引擎实例中。采用面向对象的方式,将应用组件以类接口的形式开放给开发者,可以进行派生,利于扩展能力。一个进程可以运行多个应用组件实例,所有应用组件实例共享一个ArkTS引擎实例。原创 2024-05-15 16:02:17 · 225 阅读 · 0 评论 -
构建第一个ArkTS应用之@应用模型的构成要素
应用开发者在编写应用时,首先需要编写的就是应用组件,同时还需编写应用组件的生命周期回调函数,并在应用配置文件中配置相关信息。应用组件是应用的基本组成单位,是应用的运行入口。用户启动、使用和退出应用过程中,应用组件会在不同的状态间切换,这些状态称为应用组件的生命周期。应用组件提供生命周期的回调函数,开发者通过应用组件的生命周期回调感知应用的。应用配置文件中包含应用配置信息、应用组件信息、权限信息、开发者自定义信息等,这些信息在编译构建、分发和运行阶段分别提供给编译工具、应用市场和操作系统使用。原创 2024-05-15 16:01:25 · 297 阅读 · 0 评论 -
构建第一个ArkTS应用之@LazyForEach:数据懒加载
LazyForEach从提供的数据源中按需迭代数据,并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach,框架会根据滚动容器可视区域按需创建组件,当组件滑出可视区域外时,框架会进行组件销毁回收以降低内存占用。原创 2024-05-15 13:35:38 · 690 阅读 · 0 评论 -
构建第一个ArkTS应用之@ ForEach:循环渲染
ForEach接口基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。例如,ListItem组件要求ForEach的父容器组件必须为。说明从API version 9开始,该接口支持在ArkTS卡片中使用。原创 2024-05-14 15:44:12 · 860 阅读 · 0 评论 -
构建第一个ArkTS应用之@ if/else:条件渲染
ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,使用if、else和else if渲染对应状态下的UI内容。说明从API version 9开始,该接口支持在ArkTS卡片中使用。原创 2024-05-14 15:39:31 · 876 阅读 · 0 评论 -
构建第一个ArkTS应用之@渲染控制概述
ArkUI通过自定义组件的build()函数和@builder装饰器中的声明式UI描述语句构建相应的UI。在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句,基于数组数据快速生成组件的循环渲染语句以及针对大数据量场景的数据懒加载语句。原创 2024-05-14 15:37:11 · 104 阅读 · 0 评论 -
构建第一个ArkTS应用之@Watch装饰器:状态变量更改通知
Watch用于监听状态变量的变化,当状态变量变化时,@Watch的回调方法将被调用。@Watch在ArkUI框架内部判断数值有无更新使用的是严格相等(===),遵循严格相等规范。当在严格相等为false的情况下,就会触发@Watch的回调。以下示例展示组件更新和@Watch的处理步骤。count在CountModifier中由@State装饰,在TotalView中由@Prop装饰。@Component// @Watch 回调build() {@Entry@Component。原创 2024-05-14 15:23:39 · 768 阅读 · 0 评论 -
构建第一个ArkTS应用之@$$语法:内置组件双向同步
$运算符为系统内置组件提供TS变量的引用,使得TS变量和系统内置组件的内部状态保持同步。内部状态具体指什么取决于组件。例如,组件的refreshing参数。原创 2024-05-14 10:43:59 · 168 阅读 · 0 评论 -
构建第一个ArkTS应用之@Watch装饰器:状态变量更改通知
Watch用于监听状态变量的变化,当状态变量变化时,@Watch的回调方法将被调用。@Watch在ArkUI框架内部判断数值有无更新使用的是严格相等(===),遵循严格相等规范。当在严格相等为false的情况下,就会触发@Watch的回调。以下示例展示组件更新和@Watch的处理步骤。count在CountModifier中由@State装饰,在TotalView中由@Prop装饰。@Component// @Watch 回调build() {@Entry@Component。原创 2024-05-14 10:42:33 · 492 阅读 · 0 评论 -
构建第一个ArkTS应用之@其他状态管理概述
除了前面章节提到的组件状态管理和应用状态管理,ArkTS还提供了@Watch和$$来为开发者提供更多功能:原创 2024-05-14 10:40:58 · 366 阅读 · 0 评论 -
构建第一个ArkTS应用之@Environment:设备环境查询
开发者如果需要应用程序运行的设备的环境参数,以此来作出不同的场景判断,比如多语言,暗黑模式等,需要用到Environment设备环境查询。Environment是ArkUI框架在应用程序启动时创建的单例对象。它为AppStorage提供了一系列描述应用程序运行状态的属性。Environment的所有属性都是不可变的(即应用不可写入),所有的属性都是简单类型。原创 2024-05-14 10:39:44 · 305 阅读 · 0 评论 -
构建第一个ArkTS应用之@PersistentStorage:持久化存储UI状态
PersistentStorage将选定的AppStorage属性保留在设备磁盘上。应用程序通过API,以决定哪些AppStorage属性应借助PersistentStorage持久化。UI和业务逻辑不直接访问PersistentStorage中的属性,所有属性访问都是对AppStorage的访问,AppStorage中的更改会自动同步到PersistentStorage。PersistentStorage和AppStorage中的属性建立双向同步。原创 2024-05-08 10:15:19 · 564 阅读 · 0 评论 -
构建第一个ArkTS应用之@AppStorage:应用全局的UI状态存储
AppStorage是在应用启动的时候会被创建的单例。它的目的是为了提供应用状态数据的中心存储,这些状态数据在应用级别都是可访问的。AppStorage将在应用运行过程保留其属性。属性通过唯一的键字符串值访问。AppStorage可以和UI组件同步,且可以在应用业务逻辑中被访问。AppStorage中的属性可以被双向同步,数据可以是存在于本地或远程设备上,并具有不同的功能,比如数据持久化(详见这些数据是通过业务逻辑中实现,与UI解耦,如果希望这些数据在UI中使用,需要用到和。原创 2024-05-08 10:11:03 · 1003 阅读 · 0 评论 -
构建第一个ArkTS应用之@LocalStorage:页面级UI状态存储
LocalStorage是ArkTS为构建页面级别状态变量提供存储的内存内“数据库”。应用程序可以创建多个LocalStorage实例,LocalStorage实例可以在页面内共享,也可以通过GetShared接口,实现跨页面、UIAbility实例内共享。组件树的根节点,即被@Entry装饰的@Component,可以被分配一个LocalStorage实例,此组件的所有子组件实例将自动获得对该LocalStorage实例的访问权限;原创 2024-05-06 11:12:50 · 789 阅读 · 0 评论 -
构建第一个ArkTS应用之@管理应用拥有的状态概述
上一个章节中介绍的装饰器仅能在页面内,即一个组件树上共享状态变量。如果开发者要实现应用级的,或者多个页面的状态数据共享,就需要用到应用级别的状态管理的概念。原创 2024-05-06 11:06:54 · 359 阅读 · 0 评论 -
构建第一个ArkTS应用之@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
被@Observed装饰的类,可以被观察到属性的变化;子组件中@ObjectLink装饰器装饰的状态变量用于接收@Observed装饰的类的实例,和父组件中对应的状态变量建立双向数据绑定。这个实例可以是数组中的被@Observed装饰的项,或者是class object中的属性,这个属性同样也需要被@Observed装饰。单独使用@Observed是没有任何作用的,需要搭配@ObjectLink或者@Prop使用。原创 2024-04-29 14:14:43 · 879 阅读 · 0 评论 -
构建第一个ArkTS应用之@Provide装饰器和@Consume装饰器:与后代组件双向同步
Provide装饰的状态变量自动对其所有后代组件可用,即该变量被“provide”给他的后代组件。由此可见,@Provide的方便之处在于,开发者不需要多次在组件之间传递变量。后代通过使用@Consume去获取@Provide提供的变量,建立在@Provide和@Consume之间的双向数据同步,与@State/@Link不同的是,前者可以在多层级的父子组件之间传递。@Provide和@Consume可以通过相同的变量名或者相同的变量别名绑定,变量类型必须相同。// 通过相同的变量名绑定。原创 2024-04-29 14:10:58 · 847 阅读 · 0 评论 -
构建第一个ArkTS应用之@Link装饰器:父子双向同步
Link装饰的变量与其父组件中的数据源共享相同的值。原创 2024-04-29 14:09:30 · 747 阅读 · 0 评论 -
构建第一个ArkTS应用之@Prop装饰器:父子单向同步
Prop变量允许在本地修改,但修改后的变化不会同步回父组件。当父组件中的数据源更改时,与之相关的@Prop装饰的变量都会自动更新。如果子组件已经在本地修改了@Prop装饰的相关变量值,而在父组件中对应的@State装饰的变量被修改后,子组件本地修改的@Prop装饰的相关变量值将被覆盖。原创 2024-04-29 14:07:52 · 778 阅读 · 0 评论 -
构建第一个ArkTS应用之@State装饰器:组件内状态
State装饰的变量,与声明式范式中的其他被装饰变量一样,是私有的,只能从组件内部访问,在声明时必须指定其类型和本地初始化。初始化也可选择使用命名参数机制从父组件完成初始化。@State装饰的变量与子组件中的@Prop装饰变量之间建立单向数据同步,与@Link、@ObjectLink装饰变量之间建立双向数据同步。@State装饰的变量生命周期与其所属自定义组件的生命周期相同。原创 2024-04-18 14:02:09 · 921 阅读 · 0 评论 -
构建第一个ArkTS应用之状态管理概述
在前文的描述中,我们构建的页面多为静态界面。如果希望构建一个动态的、有交互的界面,就需要引入“状态”的概念。效果图上面的示例中,用户与应用程序的交互触发了文本状态变更,状态变更引起了UI渲染,UI从“Hello World”变更为“Hello ArkUI”。在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模型,其中应用的运行时的状态是参数。当参数改变时,UI作为返回结果,也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染,在ArkUI中统称为状态管理机制。原创 2024-04-18 13:54:35 · 530 阅读 · 0 评论 -
构建第一个ArkTS应用之stateStyles:多态样式
stateStyles是属性方法,可以根据UI内部状态来设置样式,类似于css伪类,但语法不同。focused:获焦态。normal:正常态。pressed:按压态。disabled:不可用态。原创 2024-04-15 10:59:05 · 292 阅读 · 0 评论 -
构建第一个ArkTS应用之@Extend装饰器:定义扩展组件样式
在前文的示例中,可以使用@Styles用于样式的扩展,在@Styles的基础上,我们提供了@Extend,用于扩展原生组件样式。说明从API version 9开始,该装饰器支持在ArkTS卡片中使用。原创 2024-04-15 10:57:28 · 272 阅读 · 0 评论 -
构建第一个ArkTS应用之@Styles装饰器:定义组件重用样式
如果每个组件的样式都需要单独设置,在开发过程中会出现大量代码在进行重复样式设置,虽然可以复制粘贴,但为了代码简洁性和后续方便维护,我们推出了可以提炼公共样式进行复用的装饰器@Styles。@Styles装饰器可以将多条样式设置提炼成一个方法,直接在组件声明的位置调用。通过@Styles装饰器可以快速定义并复用自定义样式。用于快速定义并复用自定义样式。说明从API version 9开始,该装饰器支持在ArkTS卡片中使用。原创 2024-04-15 10:54:40 · 284 阅读 · 0 评论 -
构建第一个ArkTS应用之@BuilderParam装饰器:引用@Builder函数
当开发者创建了自定义组件,并想对该组件添加特定功能时,例如在自定义组件中添加一个点击跳转操作。若直接在组件内嵌入事件方法,将会导致所有引入该自定义组件的地方均增加了该功能。为解决此问题,ArkUI引入了@BuilderParam装饰器,@BuilderParam用来装饰指向@Builder方法的变量,开发者可在初始化自定义组件时对此属性进行赋值,为自定义组件增加特定的功能。该装饰器用于声明任意UI描述的一个元素,类似slot占位符。说明。原创 2024-04-15 10:52:34 · 378 阅读 · 0 评论 -
构建ArkTS之@Builder装饰器:自定义构建函数
允许在自定义组件内定义一个或多个@Builder方法,该方法被认为是该组件的私有、特殊类型的成员函数。自定义构建函数可以在所属组件的build方法和其他自定义构建函数中调用,但不允许在组件外调用。在自定义函数体中,this指代当前所属组件,组件的状态变量可以在自定义构建函数内访问。建议通过this访问自定义组件的状态变量而不是参数传递。全局的自定义构建函数可以被整个应用获取,不允许使用this和bind方法。如果不涉及组件状态变化,建议使用全局的自定义构建方法。原创 2024-04-09 10:27:14 · 395 阅读 · 0 评论 -
构建第一个ArkTS之页面和自定义组件生命周期
自定义组件的创建:自定义组件的实例由ArkUI框架创建。初始化自定义组件的成员变量:通过本地默认值或者构造方法传递参数来初始化自定义组件的成员变量,初始化顺序为成员变量的定义顺序。如果开发者定义了aboutToAppear,则执行aboutToAppear方法。在首次渲染的时候,执行build方法渲染系统组件,如果子组件为自定义组件,则创建自定义组件的实例。在首次渲染的过程中,框架会记录状态变量和组件的映射关系,当状态变量改变时,驱动其相关的组件刷新。原创 2024-04-09 10:23:38 · 635 阅读 · 0 评论 -
构建第一个ArkTS之创建自定义组件
以下示例展示了自定义组件的基本用法。@Componentbuild() {// HelloComponent自定义组件组合系统组件Row和TextRow() {// 状态变量message的改变驱动UI刷新,UI从'Hello, World!'刷新为'Hello, ArkUI!})说明如果在另外的文件中引用该自定义组件,需要使用export关键字导出,并在使用的页面import该自定义组件。原创 2024-04-09 10:21:12 · 899 阅读 · 0 评论 -
构建第一个ArkTS之声明式UI描述
ArkTS以声明方式组合和扩展组件来描述应用程序的UI,同时还提供了基本的属性、事件和子组件配置方法,帮助开发者实现应用交互逻辑。原创 2024-04-08 16:57:01 · 955 阅读 · 0 评论 -
构建第一个ArkTS之基本语法概述
在初步了解了ArkTS语言之后,我们以一个具体的示例来说明ArkTS的基本组成。如下图所示,当开发者点击按钮时,文本内容从“Hello World”变为“Hello ArkUI”。自定义变量不能与基础通用属性/事件名重复。本示例中,ArkTS的基本组成如下所示。ArkTS的基本组成。原创 2024-04-08 16:06:06 · 377 阅读 · 0 评论 -
初识ArkTS语言
(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。因此,在学习ArkTS语言之前,建议开发者具备TS语言开发能力。未来,ArkTS会结合应用开发/运行的需求持续演进,逐步提供并行和并发能力增强、系统类型增强、分布式开发范式等更多特性。ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在。原创 2024-04-08 16:05:08 · 338 阅读 · 0 评论