HarmonyOS @Prop 和 @Link/@ObjectLink 除了在单双向修改有区别,在数据传递上有什么区别?

@Prop据了解涉及到值copy,那@Link呢,$$ 又是什么作用。

HarmonyOS
2024-10-24 12:16:32
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

@Prop装饰变量时会进行深拷贝,在拷贝的过程中除了基本类型、Map、Set、Date、Array外,都会丢失类型。例如PixelMap等通过NAPI提供的复杂类型,由于有部分实现在Native侧,因此无法在ArkTS侧通过深拷贝获得完整的数据。

@Link/@ObjectLink不会进行深拷贝,$$运算符为系统内置组件提供TS变量的引用,也不会进行深拷贝

@Prop与@ObjectLink的差异:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-observed-and-objectlink-0000001774279618-V5#ZH-CN_TOPIC_0000001881259045__prop与objectlink的差异

使用@ObjectLink代替@Prop减少不必要的深拷贝:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-state-management-best-practices-0000001774119958-V5#ZH-CN_TOPIC_0000001881179449__使用objectlink代替prop减少不必要的深拷贝

分享
微博
QQ
微信
回复
2024-10-24 15:07:48
相关问题
UIAbilityExtensionAbility什么区别
602浏览 • 1回复 待解决
LocalStorageAppStorage什么区别
682浏览 • 2回复 待解决
请问AbilitySliceFraction什么区别
9779浏览 • 3回复 已解决
getContext传入this不传入什么区别
579浏览 • 1回复 待解决
DevEco中buildrebuild什么区别
296浏览 • 1回复 待解决
liteos-a 鸿蒙2.0什么区别
9258浏览 • 1回复 已解决
鸿蒙系统预装升级什么区别
11207浏览 • 2回复 待解决
鸿蒙1.0鸿蒙2.0什么区别
15114浏览 • 3回复 待解决
ArkTS卡片JS卡片什么区别
552浏览 • 1回复 待解决
Class Routernamespace router什么区别
1538浏览 • 1回复 待解决
DevEco构建HapAPP什么区别
14852浏览 • 1回复 待解决
@StorageProp与@StorageLink什么区别
625浏览 • 1回复 待解决
@Entry与@Component什么区别
759浏览 • 2回复 待解决