- 博客(25)
- 收藏
- 关注
原创 【HarmonyOS】性能优化——组件的封装与复用
在使用声明式开发范式中,使用ArkUI的自定义组件对节点树中的每个节点进行定义的效率不高因为每个节点在ArkTS引擎中都需要分配内存空间来存储应用程序的自定义组件和状态变量,在节点的创建中,还必须执行组件ID、组件闭包、状态变量之间依赖关系的收集使用FrameNode,则可以避免创建自定义组件对象和状态变量对象,无需进行依赖收集,提升组件的创建速度。使用@Component创建自定义自定义组件实际上就是创建了一个自定义组件对象,对象实例中包括了@State、@Link等状态变量;
2025-11-16 16:20:44
1012
1
原创 【HarmonyOS】ArkWeb——从入门到入土
当前页面由web组件作为主体显示应用页面,web组件仅需占满手机屏幕大小即可,超出的H5页面部分ArkWeb会自动生成滚动条,便于滑动浏览。同步渲染模式下,web组件作为图形canvas节点,web渲染跟随系统组件一起送显,可以渲染更长的web组件内容。当前页面有web组件和ArkUI组件共同组成,此时H5界面与Web组件的高度需要一致,web内部不生成滚动条,如果能够预测到web组件将要加载的页面或者即将要跳转的页面,就可以通过prefetchPage接口来预加载页面。在页面加载结束时,可以通过。
2025-11-15 20:00:22
1063
1
原创 【HarmonyOS】ArkTS的多线程并发(下)——线程间通信对象的传递
Sendable对象类型是ArkTS中为了优化对象间并发通信开销而提供的,支持在并发通信时通过引用传递来优化开销传统JS引擎中,要优化对象的并发通信开销,唯一的方法就是将实现下沉到Native侧,通过Transferable对象的转移或共享来降低开销Sendable对象为可共享的,其跨线程前后指向同一个JS对象。如果包含JS或者Native内容则可直接共享。
2025-11-15 19:24:19
833
原创 【HarmonyOS】ArkTS的多线程并发(上)——TaskPool与Worker
多线程并发是指在单个程序中同时运行多个程序,通过并行或交替执行任务来提升性能的编程模型。
2025-10-25 16:21:04
683
原创 【openHarmony第三方库】MMKV如何用文件锁与递归锁解决跨进程同步难题
暂时不支持直接存储自定义类,需要先将自定义类通过序列化为JSON数据,然后存储age: 23//存储序列化后的JSON信息//获得自定义类的JSON信息并反序列化处理。
2025-10-24 22:32:01
772
原创 【HarmonyOS】Axios——从简单上手到源码剖析
axios是一个基于Promise的HTTP库,封装了底层的XMLHttpRequest和http模块(移植到鸿蒙OS上的库也封装了鸿蒙的net.http模块)。axios的拦截器功能可以统一处理认证、错误提示和请求认证,减少重复代码,同时Axios可以自动转换Json数据,无需手动调用Json.parse。
2025-10-13 01:26:32
802
原创 【HarmonyOS】窗口管理实战指南
在Stage模型中,一个UIAbility对应一个WindowStage、一个WindowStage对应一个应用主窗口;由UIAbility通过WindowStage来管理主窗口并维护其生命周期,onWindowStageStage和onWindowStageDestroy即为主窗口的创建和销毁回调每个UIAbility实例都会与一个WindowStage类实例相绑定,WindowStage类的作用主要是管理应用进程内的窗口,这个类包含一个主窗口。
2025-10-08 21:55:56
915
原创 【HarmonyOS】消息通知
为通知添加行为意图就是说,应用向Ability Kit申请一个WantAgent,并且将WantAgent封装至通知中。当发布通知时,用户便可以通过点击通知栏中的消息,实现拉起目标应用组件或者发布公共事件用户收到通知提醒后,点击通知并拉起应用到前台时,应用可以选择取消某条通知或者所有通知。
2025-10-06 15:36:11
1292
1
原创 【HarmonyOS】HMRouter关键原理-动态import
当前所有import中使用的模块名是依赖方oh-package.json5的dependencies中的别名import一个模块名,实际上机会import该模块的入口文件,一般为Index.ets在方舟编译器中,模块间的依赖关系通过oh-package.json5中的dependencies字段来配置,这字段中的所有模块都会进行安装,但是默认不参与编译HAP编译时会以入口文件开始搜索依赖关系,搜索的到的模块会加入编译,import顺序为后序遍历(不同的模块之间的联系抽象为树结构)
2025-09-22 23:52:30
1500
4
原创 【HarmonyOS】自定义节点
自定义占位节点作为系统组件可以在组件树上为自定义节点提供挂载的点。通过自定义占位节点,可以将自定义节点挂载在占位节点,实现自定义节点与系统组件的混合显示FrameNode表示组件的实体节点,具体可以分为两大类能力:完全自定义节点的能力以及系统组件节点代理的能力完全自定义节点:提供完整的自定义能力,包括自定义测量、布局以及绘制,支持节点的动态增、删,设置通用属性,设置事件回调。适用于不自带渲染引擎,需要依赖系统的布局、事件、动画、渲染等能力的场景。
2025-09-08 00:26:41
684
原创 【HarmonyOS】鸿蒙中的MV*
和MVC一样,用户对view的操作也会移交给Presenter处理,然后model执行业务逻辑,但是model在变更之后,会通过观察者模式传递给Presenter而不是view。Presenter在获得到model变更的消息之后,通过view提供的接口更新界面关键点view不在负责同步的逻辑,而是由presenter负责。presenter中机油应用程序的逻辑也有同步逻辑view需要提供更新操作界面数据的结构给presenter进行调用。
2025-09-01 08:44:51
1066
原创 【HarmonyOS】ArkUI布局优化
在UI的开发中,我们通过布局组件和基础组件进行界面的描述,这种描述会被抽象成一个树结构,基础组件在其中是叶子节点,布局组件是中间节点,称之为应用组件树。当用户执行交互行为引发UI刷新时,本质上是通过触发这课组件树的重新渲染来实现应用界面更新的过程应用界面的更新主要分为数据处理和UI更新两个过程没有关联任何UI组件的状态变量不应该定义为状态变量,影响应用性能若要进行复杂的计算操作,建议通过中间变量进行计算,最后将结果一次性赋值给状态变量,不建议直接操作状态变量进行计算。
2025-08-10 20:09:48
658
原创 【HarmonyOS】ArkUI的组件扩展
ArkuI的组件扩展主要是通过等装饰器来对于一些常用的自定义组件进行封装, 来简化UI开发流程, 提高自定义组件的可复用性。
2025-08-03 20:02:45
1056
原创 【HarmonyOS】动态路由封装实现原理(bushi
在这里简单说说装饰器装饰器本质就是一个函数,允许开发者通过声明式方式动态扩展类、方法、属性或参数的行为,而无需修改其原有代码定义一个名为@MyRouter的装饰器使用装饰器时增加当前组件的路由路径@Componentbuild() {//...当静态import的模块明显降低了代码的加载速度且很少被使用时当静态import的模块在加载时并不存在时当静态import的模块占用了大量资源且很少被使用时。
2025-07-28 00:27:57
690
原创 ArkData——数据持久化(一)
这个小结我们学习了通过用户首选项来持久化数据,并完成了一个小demo,下一节我们将学习通过键值型数据库相关操作,继续努力吧!
2025-04-21 21:46:58
575
1
原创 @Provide与@Consume装饰器——前人栽树,后人乘凉
顾名思义,Provide生产,Consume消费,@Provide就是绑定与需要传递的状态变量前,@Consume绑定在需要接受信息的状态变量前@Provide和@Consume是应用于与后代组件的双向数据同步。啥意思呢,就是我们在有些业务环境中,我们需要将父组件中的信息传递给某个组件,而这个组件可能被一个子组件包裹,或者被子组件的子组件的子组件…(无限套娃),这时我们就需要使用@Procide和@Consume装饰器来大展身手了。
2025-04-12 22:08:28
911
1
原创 HarmonyOS——状态管理(V1稳定&不全乎版)
LocalStorage是ArkTS为构建页面级别状态变量提供存储的内存内的“数据库”,而先前的状态变量基本都是在组件内或者组件之间的。其中一个@Entry装饰的@component最多只能访问一个LocalStorage实例,未被装饰的组件不可独立分配LocalStorage,只能接收从父组件中传递来的实例LocalStorage中的所有属性都是可变的LocalStorage根据@component装饰子组件同步类型不同,提供了和两个装饰器。
2024-11-04 20:41:52
837
原创 Git学习——我喜欢分支管理!
git的分支管理是git的得意技能,在一个项目开发时,它让多个开发人员可以并行工作,进行项目测试,功能开发,bug调试等,而不会影响主代码库,在保证用户可以正常使用的同时进行实验,十分方便。
2024-10-14 20:09:11
1166
1
原创 [ArkTS]url中含有中文导致http请求失败
{查询参数}当我在Search组件获焦后使用输入法对其中location字段置为中文时, 搜索不到城市,工程日志显示状态码为400;但同样的url,我在浏览器上则可以正常获取到数据。令我百思不得其解。
2024-09-10 14:12:14
955
原创 一个计算器的诞生【ArkTS】
逆波兰表达式又称后缀表达式,即每一种运算都放置在运算对象后;我们平时书写的像 3+5x6 ,每一种运算符都放置在运算对象中间,所以叫做中缀表达式。上述式子改写为后缀表达式即为 3 5 6 x +这种式子乍一看可能很难让人理解这byd到底是咋算出来答案的,而要解释原理,我们又要引出一位神秘嘉宾,那就是数据结构中的——栈。
2024-08-04 00:39:09
1258
原创 基于TS数组实现链表相关操作
一、数组模拟inedx:表示处理当前插入节点的编号。head:表示头结点,head的值即为头结点指向的值。he[ ]:表示节点之间的指向关系,例如head[1]=2表示一号节点指向二号节点。ne[ ]:表示节点值的大小,例如ne[1]=10表示一号节点的值为10。
2024-07-21 20:13:38
300
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅