HarmonyOS 5.0 应用开发——V2 装饰器 @local 的使用

【高心星出品】
概念
组件内部状态管理 @Local 是专为 @ComponentV2 组件设计的装饰器,用于声明组件私有状态。被装饰的变量必须在组件内部初始化,禁止从父组件外部传入初始值(如Child({count: 10})
的写法会报错),确保状态封装性。
观测能力
支持类型:基本类型(number、string、boolean)、Object、class、Array、Set、Map、Date 等内嵌类型,以及联合类型 1。
变化触发机制:
简单类型(如 number):赋值操作触发 UI 刷新(如
this.count++
)。对象类型:仅整体赋值时触发(如替换整个对象
this.obj = new MyClass()
)。数组/集合类型:整体赋值或调用特定 API(如
push()
、set()
)时触发。
与 @State 的对比
使用场景
基本状态管理:
Button 绑定 local 装饰的变量 count,count 值改变引起 button 刷新。
复制代码
装饰数组的情况:
button 绑定数据源 datas 的长度,list 绑定数据源 datas,当数据源调用 push api 或者元素更新的时候会引起 UI 刷新。
复制代码
不可以从父组件向子组件传值
复制代码
版权声明: 本文为 InfoQ 作者【高心星】的原创文章。
原文链接:【http://xie.infoq.cn/article/11bdd05e373c675ccfe060c12】。文章转载请联系作者。
评论