首页 > 分享 > 鸿蒙NEXT开发教程:浅谈@ComponentV2装饰器

鸿蒙NEXT开发教程:浅谈@ComponentV2装饰器

听说今天的广州车展上有一部分人已经看到华为汽车的最后一“界”,尊界超豪华大轿车,应该很快就要正式亮相,可以期待一波。

在api12之后,鸿蒙系统推出一个V2版本的状态管理装饰器,不过目前还在开发试用状态,幽蓝君仔细研究了一下,今天跟大家做一个简单的介绍。

幽蓝君对V2版本装饰器的总结是,它是为了修补目前版本状态管理的不足,新增了一些功能更加精细的状态变量装饰器,等到开发试用完善之后应该会和当前装饰器合并到一起,不再使用V2区分。

下面跟大家详细介绍一下@ComponentV2装饰器。

@ComponentV2和@Component一样,都用于装饰自定义组件,但是@ComponentV2内部只能使用全新的状态变量装饰器,比如@Local、@param、@Once、@Event、@Provider、@Consumer等。这几个装饰器有什么作用呢,请往下看:

@Local:组件内部状态

@Local的作用和现在的@State类似,但是鸿蒙研发团队认为@State装饰器可以从外部初始化是一个缺陷,所以@Local是一个组件内部状态,它不接受从外部进行的初始化,下面我写了一段demo,让我们来感受一下:

鸿蒙NEXT开发教程:浅谈@ComponentV2装饰器_ide

可以看到,当我向子组件传值时,@Local修饰符是不接受的。

@Param:组件外部输入

和@Local相反,@Param表示组件从外部传入的状态,它是为了父子组件之间的数据能够进行同步。但是它是不支持组件内部进行修改的:

鸿蒙NEXT开发教程:浅谈@ComponentV2装饰器_ide_02

@Once:初始化同步一次

这个装饰器看单词就比较好理解,只能修改一次,不过它的局限性比较大,必须和@Param配合使用,不能单独使用,它是为了实现仅从外部初始化一次、不接受后续同步变化的能力。

@Event组件输出

@Event也和@Param有关系,因为@Param修饰的变量无法从内部修改,但是有时它又需要修改,那怎么办呢,@Event装饰的事件负责告诉父组件,再由父组件进行修改。好像有点多此一举:

@Provider装饰器和@Consumer装饰器:跨组件层级双向同步

我们在V1版本里都使用过@Provide和@Consume,是用来跨组件层级双向传递的装饰器,这两个长的很像,功能也类似,不过有一些细小的区别,直接跟大家截个图吧:

鸿蒙NEXT开发教程:浅谈@ComponentV2装饰器_Text_03

@Monitor:监听

我们之前使用@Watch来监听变量的变化,不过@Watch无法实现对对象、数组中某一单个属性或数组项变化的监听,且无法获取变化之前的值。而@Monitor可以:

@Computed:计算属性

@Computed用来装饰getter方法,并且会随着被计算的值的变化而变化,并且只会计算一次,另外,@Computed的计算性能更佳。文字比较难理解,举个例子:

相关知识

鸿蒙应用开发实战项目,看这一篇文章就够了(部分项目附源码)
鸿蒙移动应用开发
手把手教你开发第一个HarmonyOS (鸿蒙)移动应用
“纯血鸿蒙”来了!鸿蒙生态怎么建
HarmonyOS NEXT 发布,纯净安全的全新应用生态体系
浩辰CAD原生鸿蒙版公测 多端互动协同设计
HarmonyOS NEXT正式发布,开启更多机型公测
一文看懂华为发布会:鸿蒙生态设备超10亿,已成中国第二大操作系统,原生鸿蒙新增多款设备公测
企业办公应用加速鸿蒙化,多款鸿蒙原生版人力资源管理App上架,覆盖超3万家企业
HarmonyOS NEXT开发实战教程:选择相册和拍照

网址: 鸿蒙NEXT开发教程:浅谈@ComponentV2装饰器 https://m.huajiangbk.com/newsview600369.html

所属分类:花卉
上一篇: 教你折纸八瓣装饰花,简单漂亮,赏
下一篇: 装饰花朵剪纸手工制作图片 手工剪