HarmonyOS @Prop和 @link的内存和效率对比,使用大量数据深拷贝的时候,使用link的开销是不是比prop小
@Prop和 @link的内存和效率对比,使用大量数据深拷贝的时候,使用link的开销是不是比prop小
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
#鸿蒙通关秘籍#如何利用@Prop和@Link在ArkTS中传递和绑定子组件输入数据?
170浏览 • 1回复 待解决
为什么自定义组件声明 @Link @Prop 的属性必须外层配置呢?
346浏览 • 1回复 待解决
#鸿蒙学习大百科#在性能优化访方面@Link,@ObjectLink对比@Prop有什么优势?
450浏览 • 1回复 待解决
HarmonyOS @Prop 和 @Link/@ObjectLink 除了在单双向修改有区别,在数据传递上有什么区别?
415浏览 • 1回复 待解决
组件入参加@prop和不加的区别
1943浏览 • 1回复 待解决
如何利用HarmonyOS NEXT的内存管理机制来减少内存泄漏和提高内存使用效率?
619浏览 • 0回复 待解决
HarmonyOS 使用@pro做UI的刷新的时候,如果同步的数据对象特别大,深拷贝会不会存在性能问题?
306浏览 • 1回复 待解决
在ontouch的时候改变了state定义的pageIndex和textPage,组件里@Link定义的数据变了,但是没有重绘
1649浏览 • 1回复 待解决
父组件与子组件使用@Link双向同步
935浏览 • 1回复 待解决
#鸿蒙通关秘籍# 如何在鸿蒙开发中通过使用@ObjectLink避免不必要的深拷贝,提高状态管理效率?
75浏览 • 0回复 待解决
HarmonyOS 开发@Prop问题
334浏览 • 1回复 待解决
#鸿蒙通关秘籍# 在ArkTS开发中,如何实现组件之间的数据双向绑定,@Link装饰器的作用和使用方法是什么?
176浏览 • 1回复 待解决
HarmonyOS V2 @Link?
163浏览 • 0回复 待解决
HarmonyOS 关于@State或@Link 修饰Array的应用
153浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何在HarmonyOS中使用@Link装饰器实现父子组件的双向数据绑定?
144浏览 • 1回复 待解决
HarmonyOS 组件变量被@Link修饰,如何使用ForEach批量创建组件
394浏览 • 1回复 待解决
ArkTS中如何实现对象的深拷贝?
441浏览 • 1回复 待解决
HarmonyOS pixelmap深拷贝问题
602浏览 • 1回复 待解决
@State与@Link的双向绑定,和@Provide与@Comsume的双向绑定的区别是什么?
492浏览 • 2回复 待解决
使用@ObservedV2装饰器的class,给子组件@Prop装饰的数组传值时,数组变动了,但数组元素的值未拷贝过去
266浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何使用PixelMap深拷贝实现图片裁剪?
145浏览 • 1回复 待解决
#鸿蒙通关秘籍#如何提高鸿蒙Worker线程的内存使用效率?
96浏览 • 1回复 待解决
HarmonyOS 多个@Prop变化顺序问题
297浏览 • 1回复 待解决
@Prop和 @link存在数据同步的差异,目前并不支持@Prop和 @link数据深拷贝操作,但从实现方式看@Prop的开销应该小于@link方式@Prop和 @link 主要区别:@Prop装饰的变量必须使用其父组件提供的@State变量进行初始化,变量修改不会影响父组件UI刷新,仅影响当前组件UI刷新@Link装饰的变量也是来自父组件@State修饰变量进行初始化,变量修改不仅会影响当前组件UI刷新,还会影响父组件UI刷新@Link的底层触发逻:
初始渲染:执行父组件的build()函数后将创建子组件的新实例。初始化过程如下:父组件中的@State变量要求必须初始化,父组件中@State变量值会初始化给子组件的@Link变量。子组件的@Link变量值与其父组件的数据源变量保持同步(双向数据同步)。
父组件的@State状态变量包装类通过构造函数传给子组件,子组件的@Link包装类拿到父组件的@State的状态变量后,将当前@Link包装类this指针注册给父组件的@State变量。父组件中状态变量更新,引起相关子组件的@Link的更新:子组件@Link包装类把当前this指针注册给父组件。
父组件@State变量变更后,会遍历所有依赖它的系统组件(elementid)和状态变量(比如@Link包装类),通知他们更新数据。以此实现父组件对子组件的状态数据同步。当子组件中@Link更新后,处理步骤如下:@Link更新后,调用父组件的@State包装类的set方法,将更新后的数值同步回父组件。
子组件@Link和父组件@State分别遍历依赖的系统组件,进行对应的UI的更新。总结起来就是一句话:父组件的状态变量和子组件的@Link变量,双向数据同步,任何一边有变化,都会同步给对方,另外都是状态变量,根据声明式的UI范式的机制,关联的UI组件都会被重新渲染刷新。
参考文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/arkts-link-V5