HarmonyOS ObservedV2正式使用之后,现在的Observed和一系列其他状态管理装饰器是否会弃用
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS @ObservedV2和之前的状态管理可以共用吗
292浏览 • 1回复 待解决
HarmonyOS ObservedV2装饰器对接口返回的model进行状态监听无效
361浏览 • 1回复 待解决
#鸿蒙学习大百科#@ObservedV2和@Trace装饰器需要如何配合使用?
496浏览 • 1回复 待解决
@Observed和其他类装饰器装饰同一个class是否存在问题
2495浏览 • 1回复 待解决
HarmonyOS @ObservedV2装饰器和@Track装饰器配合List组件,点击ListItem添加选中效果怎么做?
105浏览 • 1回复 待解决
HarmonyOS使用@ObservedV2装饰viewmodel类,在父子组件传递的时候不方便
643浏览 • 1回复 待解决
#鸿蒙学习大百科#@ObservedV2和@Trace装饰器从哪个API版本开始支持?
496浏览 • 1回复 待解决
HarmonyOS @ObservedV2修饰类中@Trace装饰的属性赋值问题
232浏览 • 1回复 待解决
HarmonyOS @Sendable怎么和@ObservedV2协同工作
266浏览 • 1回复 待解决
HarmonyOS 如何把一个使用@ObservedV2修饰的类传给子组件
70浏览 • 1回复 待解决
使用@ObservedV2装饰器的class,给子组件@Prop装饰的数组传值时,数组变动了,但数组元素的值未拷贝过去
348浏览 • 1回复 待解决
HarmonyOS @ObservedV2不支持{} as Father对象
257浏览 • 1回复 待解决
HarmonyOS 父组件不能用@ObservedV2修饰的类用@state传给子组件
359浏览 • 1回复 待解决
HarmonyOS List的onScroll方法显示deprecated后期是否会弃用
831浏览 • 1回复 待解决
HarmonyOS @ObservedV2的类实例目前不支持使用JSON.stringify进行序列化,现在是否有替代方案
245浏览 • 1回复 待解决
状态管理装饰器:state和observerd/objectlink,性能对比
2174浏览 • 1回复 待解决
HarmonyOS 使用@ObservedV2的类,无法从父组件通过构造函数传递给子组件
317浏览 • 1回复 待解决
HarmonyOS @Observed装饰器问题咨询
265浏览 • 1回复 待解决
HarmonyOS 如何使用@ObservedV2传入一个自定义控件,该如何接收并刷新呢
220浏览 • 1回复 待解决
HarmonyOS 自定义Canvas刷新和@ObservedV2如何配合刷新?
563浏览 • 1回复 待解决
在ObservedV2正式使用之后,现有的Observed装饰器和一系列其他状态管理装饰器不能与状态管理V2混合使用。具体来说,以下是不能混合使用的装饰器:@Observed、@Trace、@Component、@ComponentV2、@Local、@Param、@Once、@Event、@Monitor、@Provider、@Consumer、@StorageLink、@StorageProp、@LocalStorageLink、@LocalStorageProp、@Watch。
这些限制包括:
将V2版本的装饰器装饰的变量传递给V1版本装饰器装饰的变量。
将V1版本装饰器与V2版本装饰器混合使用 。
在V2版本装饰器装饰的自定义组件中通过V1版本装饰器装饰的变量装饰的变量 。
在V2版本装饰器装饰的自定义组件中通过V1版本装饰器装饰的变量装饰的变量。
由于新的状态管理框架采用了和现有状态管理框架不同的实现,因此不能将新的状态管理框架和现有状态管理框架混合使用,这项限制包括如下场景:
1、将新装饰器装饰的变量传递给现有装饰器装饰的变量。
2、将现有装饰器@Observed、@Track与新装饰器@ObservedV2、@Trace混合使用。
将新装饰器与现有装饰器混合使用,会出现未定义行为,表现为冗余刷新、失去深度观测能力、失去自身属性观测能力、失去属性级更新能力等。因此,不能将新的状态管理框架与现有状态管理框架混合使用。
demo及使用场景可参考以下文档:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-new-observedv2-and-trace-V5#%E4%BD%BF%E7%94%A8%E5%9C%BA%E6%99%AF
不能混用指的是某个组件内不能混合使用,以下是错误代码示例: