HarmonyOS学习问题记录

88 阅读3分钟

1:Tabs只能居中展示不支持靠左靠右展示

image.png 官方说明以及解决方案

image.png

2. 状态管理 切换成V2版本

官方说明

能力对比:

V1能力V2能力说明
@Observed@ObservedV2表明当前对象为可观察对象。但两者能力并不相同。@Observed可观察第一层的属性,需要搭配@ObjectLink使用才能生效。@ObservedV2本身无观察能力,仅代表当前class可被观察,如果要观察其属性,需要搭配@Trace使用。
@Track@TraceV1装饰器@Track为精确观察,不使用则无法做到类属性的精准观察。V2@Trace装饰的属性可以被精确跟踪观察。
@Component@ComponentV2@Component为搭配V1状态变量使用的自定义组件装饰器。@ComponentV2为搭配V2状态变量使用的自定义组件装饰器。
@State无外部初始化:@Local外部初始化一次:@Param@Once@State和@Local类似都是数据源的概念,区别是@State可以外部传入初始化,而@Local无法外部传入初始化。
@Prop@Param@Prop和@Param类似都是自定义组件参数的概念。当输入参数为复杂类型时,@Prop为深拷贝,@Param为引用。
@Link@Param@Event@Link是框架自己封装实现的双向同步,对于V2开发者可以通过@Param@Event自己实现双向同步。
@ObjectLink@Param直接兼容,@ObjectLink需要被@Observed装饰的class的实例初始化,@Param没有此限制。
@Provide@Provider兼容。
@Consume@Consumer兼容。
@Watch@Monitor@Watch用于监听V1状态变量的变化,具有监听状态变量本身和其第一层属性变化的能力。状态变量可观察到的变化会触发其@Watch监听事件。@Monitor用于监听V2状态变量的变化,搭配@Trace使用,可有深层监听的能力。状态变量在一次事件中多次变化时,仅会以最终的结果判断是否触发@Monitor监听事件。
LocalStorage全局@ObservedV2@Trace兼容。
AppStorageAppStorageV2兼容。
Environment调用Ability接口获取系统环境变量Environment获取环境变量能力和AppStorage耦合。在V2中可直接调用Ability接口获取系统环境变量。
PersistentStoragePersistenceV2PersistentStorage持久化能力和AppStorage耦合,PersistenceV2持久化能力可独立使用。
自定义组件生命周期自定义组件生命周期均支持。aboutToAppearonDidBuildaboutToDisappear
页面生命周期页面生命周期均支持。onPageShowonPageHideonBackPress
@Reusable暂未提供组件复用。包括:aboutToReuseaboutToRecycle
$$!!双向绑定。V2建议使用!!实现双向绑定。
@CustomDialogopenCustomDialog接口自定义弹窗。V2建议使用openCustomDialog实现自定义弹窗功能。
withTheme暂未提供主题。用于设置应用局部页面自定义主题风格。包括:onWillApplyTheme
高级组件暂未提供高级组件。例如:DownloadFileButtonProgressButtonSegmentButton
animateTo部分场景不支持当前某些场景下,在状态管理V2中使用animateTo动画,会产生异常效果,详见:在状态管理V2中使用animateTo动画效果异常

3.引用三方库 和 本地hsp

3.1 本地module对外暴露工具列

image.png

3.2 引用本地和三方库

image.png