鸿蒙知识点笔记(一)

记录一些实际应试中比较容易考到的知识点。

动态加载的适用场景

  • 当静态导入的模块很明显的降低了代码的加载速度且被使用的可能性很低,或者并不需要马上使用它。
  • 当静态导入的模块很明显的占用了大量的系统内存且被使用的可能性很低。
  • 当被导入的模块,在加载时并不存在,需要异步获取。
  • 当被导入的模块说明符,需要动态构建。静态导入只能使用静态说明符。
  • 当被导入的模块有副作用(这里的副作用,可以理解为模块中会直接运行的代码),这些副作用只有在触发了某些条件才被需要时。

V2状态管理AppStorageV2中的使用限制条件

  • 需要配合UI使用(UI线程),不能在其他线程使用,如不支持@Sendable。
  • 不支持collections.Set、collections.Map等类型。
  • 不支持非buildin类型,如PixelMap、NativePointer、ArrayList等Native类型。

V2状态管理@ComponentV2和@Component的差异

  • 在@ComponentV2装饰的自定义组件中,开发者仅可以使用全新的状态变量装饰器,包括@Local、@Param、@Once、@Event、@Provider、@Consumer等。
  • @ComponentV2装饰的自定义组件暂不支持组件复用、LocalStorage等现有自定义组件的能力。
  • 无法同时使用@ComponentV2与@Component装饰同一个struct结构。
  • @ComponentV2支持一个可选的boolean类型参数freezeWhenInactive,来实现组件冻结功能。
  • 除非特别说明,@ComponentV2装饰的自定义组件将与@Component装饰的自定义组件保持相同的行为。

如何指定半模态窗口高度

  • 三个档位,SheetSize.FIT_CONTENT,SheetSize.LARGE,SheetSize.MEDIUM

动态卡片与静态卡片的相关概念

  • 动态卡片支持自定义交互、动效、滑动等功能,功能丰富但内存占用较大
  • 静态卡片内存占用较小,有助实现整机内存优化,可实现静态信息展示、刷新和点击跳转
  • 卡片的具体配置信息。在上述FormExtensionAbility的元信息(“metadata”配置项)中,可以指定卡片具体配置信息的资源索引。例如当resource指定为$profile:form_config时,会使用开发视图的resources/base/profile/目录下的form_config.json作为卡片profile配置文件
  • isDynamic表示此卡片是否为动态卡片(仅针对ArkTS卡片生效)。true:为动态卡片 。false:为静态卡片。

几个Node-APl数据类型的概念

  • napi_env:用于表示Node-API执行时的上下文
  • napi_status:是一个枚举数据类型,表示Node-API接口返回的状态信息
  • napi_threadsafe_function_call_mode: 该枚举类型定义了两个常量,用于指定线程安全函数的调用模式
  • napi_threadsafe_function_release_mode: 该枚举类型定义了两个常量,用于指定在何时释放线程安全函数的回调函数

HitTestMode枚举说明

  • Default:默认触摸测试效果,自身和子节点都响应触摸测试,但会阻塞兄弟节点的触摸测试。不会影响祖先节点的触摸测试。
  • Block:自身响应触摸测试,阻塞子节点和兄弟节点的触摸测试。会阻塞祖先节点的触摸测试。
  • Transparent:自身和子节点都响应触摸测试,不会阻塞兄弟节点的触摸测试。不会影响祖先节点的触摸测试。
  • None:自身不响应触摸测试,不会阻塞子节点和兄弟节点的触摸测试。不会影响祖先节点的触摸测试。

Performance Analysis Kit(性能分析服务)为开发者提供的能力有哪些

  • HiLog流水日志,提供开发者记录和获取流水日志能力。
  • HiTraceMeter和HiTraceChain跟踪,提供开发者Trace度量和跨线程跨进程分布式跟踪的能力。
  • HiAppEvent应用事件,提供开发者记录故障、行为、安全、统计事件的能力,并订阅系统事件,设置数据处理者完成数据上传。
  • FaultLogger故障日志管理,提供开发者主动查询故障日志的通道。
  • HiDebug资源采集,提供开发者获取应用、系统资源的使用情况。

@AnimatableExtend装饰器的相关概念

  • @AnimatableExtend仅支持定义在全局,不支持在组件内部定义。
  • @AnimatableExtend定义的函数参数类型必须为number类型或者实现 AnimatableArithmetic接口的自定义类型。
  • @AnimatableExtend定义的函数体内只能调用@AnimatableExtend括号内组件的属性方法。

@Track装饰器的使用限制

  • @Track是class对象的属性装饰器。当一个class对象是状态变量时,@Track装饰的属性发生变化,只会触发该属性关联的UI更新;
  • 如果class类中使用了@Track装饰器,那么该class类中非@Track装饰的属性不能在UI中使用,包括不能绑定在组件上、不能用于初始化子组件,错误的使用将导致运行时报错
  • 可以在非UI中使用非@Track装饰的属性,如事件回调函数中、生命周期函数中等。

V2状态管理@Param装饰器的相关概念

  • @Param装饰的变量支持本地初始化,但是不允许在组件内部直接修改变量本身。
  • 被@Param装饰的变量能够在初始化自定义组件时从外部传入,当数据源也是状态变量时,数据源的修改会同步给@Param。
  • @Param可以接受任意类型的数据源,包括普通变量、状态变量、常量、函数返回值等。
  • @Param装饰的变量变化时,会刷新该变量关联的组件。
  • @Param支持观测number、boolean、string、Object、class等基本类型以及Array、Set、Map、Date等内嵌类型。
  • 对于复杂类型如类对象,@Param会接受数据源的引用。在组件内可以修改类对象中的属性,该修改会同步到数据源。
  • @Param的观测能力仅限于被装饰的变量本身。当装饰简单类型时,对变量的整体改变能够观测到;当装饰对象类型时,仅能观测对象整体的改变;当装饰数组类型时,能观测到数组整体以及数组元素项的改变;当装饰Array、Set、Map、Date等内嵌类型时,可以观测到通过API调用带来的变化。详见观察变化。
  • @Param支持null、undefined以及联合类型。

不经常在线,有问题可在微信公众号或者掘金社区私信留言
更多内容可关注
我的公众号悬空八只脚
作者:悬空八只脚
链接:https://juejin.cn/post/7475598118462046246
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

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

相关文章

17.指针

正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址。 请看下面的实例,它将输出定义的变量地址:#include <stdio.h>int main(){int var_runoob = 10;int *p; //定义指针变量p = &var…

3.24 学习记录

实现了学习记录APP的登录注册功能

2025西安交大集训Day2:DFS,BFS记忆化搜索,迭代加深搜索,二分搜索

2025西安交大集训Day2:DFS,BFS记忆化搜索,迭代加深搜索,二分搜索

掌握 Postman:高级 GET 请求技术与响应分析

欢迎阅读本指南,它将详细介绍如何在 Postman 中发送 GET 请求并理解 API 响应。对于希望提升 API 测试和开发能力的开发者来说,这是不可或缺的技能。 Postman 对开发者的重要性Postman 是 API 开发和测试中不可或缺的工具。它不仅简化了发送请求和分析响应的过程,还提供了一…

带你一起来熟悉linux文件权限体系

了解 Linux 文件权限对于有效且可靠的linux相关系统管理和安全管理至关重要。通过本文中概述的概念并加以实践,您将可以轻松浏览文件权限并确保 Linux 系统的完整,可靠和安全。下面将从权限的格式,常用设置,修改,解析等方面分别说明。 A).Linux 文件权限由三个权限部分组成…

OP100自动安装背板常见问题

1.运行过程中切手动,回原灯一直闪烁,始终无法执行完成 OP50自动安装座板 OP100自动安装背板 OP280自动安装上盖 这几个工站因为有记忆功能,会记住当前步序以及夹爪/吸盘上有没有物体,如果运行中切换手动,并动了气缸,会导致逻辑错乱,类似升降器的SUB40,遇到这种情况: 1…

20244217 2024-2025-2 《Python程序设计》实验一报告

学号 2024-2025-2 《Python程序设计》实验一报告 课程:《Python程序设计》 班级: 2442 姓名: 胡峻豪 学号:20244217 实验教师:王志强 实验日期:2025年3月24日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境。首先在官网下载并安装PyCharm专业版,安装完成后打开软…

软件工程日报15

Android studio 实现连接远程mysql数据库,并将数据展示出来,由于之前没接触过,全靠按照博客上的指导和ai生成的代码,之后在学习一下 以下是效果

《Python程序设计》实验一报告

课程:《Python程序设计》 班级: 2441 姓名: 王晓凤 学号:20244127 实验教师:王志强 实验日期:2025年3月24日 必修/选修: 公选课 一.实验内容 1.熟悉Python开发环境:本次实验使用了PyCharm。首先在官网下载并安装PyCharm社区版,安装完成后打开软件,创建一个新的Pytho…

抽象bug:mybatis-xml配置错误(configuration and configLocation can not specified with together)

mybatis-xml配置错误(configuration and configLocation can not specified with together) 操作 我在使用mybatis-XML映射配置时,没有将mappper的xml文件放在同名同包的路径下,而是使用辅助配置,在配置文件中设置XML路径.然而,在配置文件后,没有成功,一直报错. 错误信息:"…

关于pytorch中直接调用对象

基于之前有C++基础,对于python中的一些函数的用法总会有些疑问。 例如,为什么python可以直接调用对象,而不是调用对象里的函数呢? 以下为包含__call__函数的类的调用 除此之外, 在PyTorch 中,所有继承自 nn.Module 的类都继承了一个特殊的 call() 方法。 # 使用ToTensor创…