写点什么

鸿蒙知识点笔记 (一)

作者:悬空八只脚
  • 2025-03-25
    江苏
  • 本文字数:2299 字

    阅读完需:约 8 分钟

鸿蒙知识点笔记(一)

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

动态加载的适用场景


  • 当静态导入的模块很明显的降低了代码的加载速度且被使用的可能性很低,或者并不需要马上使用它。

  • 当静态导入的模块很明显的占用了大量的系统内存且被使用的可能性很低。

  • 当被导入的模块,在加载时并不存在,需要异步获取。

  • 当被导入的模块说明符,需要动态构建。静态导入只能使用静态说明符。

  • 当被导入的模块有副作用(这里的副作用,可以理解为模块中会直接运行的代码),这些副作用只有在触发了某些条件才被需要时。


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<T>接口的自定义类型。

  • @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

来源:稀土掘金

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

发布于: 刚刚阅读数: 4
用户头像

还未添加个人签名 2021-05-29 加入

还未添加个人简介

评论

发布
暂无评论
鸿蒙知识点笔记(一)_HarmonyOS_悬空八只脚_InfoQ写作社区