OpenHarmony ETS 掌握组件化这些装饰器写好界面事半功倍 原创 精华
陈浩南xxx
发布于 2022-4-24 14:18
浏览
3收藏
OpenHarmony ETS 掌握组件化这些装饰器写好界面事半功倍
水之积也不厚,则其负大舟也无力
前言:写这篇文章的目的性,是让新手了解几个装饰器的作用,知道如何更加的使得代码模块化,复用性更高,提升代码的阅读效率。
1,@Entry
- @Entry装饰的@Component为页面的总入口,一个页面有且仅有一个@Entry
Api9下的注册方式
2,@Component
UI都是通过@Component声明来修饰,如下
- 所有的UI都是由组件构成,组件的数据结构为struct
- @Component装饰struct,使之成为自定义组件,
- 自定义组件可以调用其他自定义组件和内置组件
- 自定义组件内部必须实现build方法来描述UI结构
- 禁止自定义构造函数
3,@Preview
- 单组件预览,无视@Entry装饰器,仅预览被@Preview装饰的自定义组件
- 在单个源文件中,最多可以使用**@Preview**装饰一个自定义组件
我们在预览无Entry修饰的组件时
于是我们可以用@Preview来预览效果
4,@Builder
-
@Builder装饰器定义了一个如何渲染自定义组件的方法,语法和作用和build函数一致。
-
通过@Builder装饰器可以在一个自定义组件内快速生成多个布局内容
这样的好处就是可以减少大量重复的代码,还能逻辑统一,一处修改多UI生效
5,@Extend
-
对内置组件进行二次封装
-
@Extend装饰器不能用在自定义组件struct定义框内
模拟器测试报错,理论上是可以支持的
这样的优点可以减少对内置组件的重复设置,可以封装在一个方法内
6,@CustomDialog
- 用于装饰自定义弹窗。
注意:从效果看 @State修饰的变量,从@CustomDialog修饰的CustomDialogExample类,回调了该方法,但是它没有重新使得build刷新,
原因不明(评论区有答案)
7,@BuilderParam
可以在局部样式相同,局部样式不同是复用
8,@Styles
-
@Styles装饰的方法不能带参数
-
组件内@Styles装饰的方法可以有多个
多个相同属性可以利用此装饰器封装
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
已于2022-4-25 14:49:30修改
赞
5
收藏 3
回复
5
3
3
相关推荐
没有刷新是this指向问题
这样写就可以了
果然可以,谢谢大佬指点; 想问下:bind(this)这个this是指的谁?
指向这个组件CustomDialogUser自己
其实等同于
cancel传递一个普通函数的时候,这个函数的上下文其实已经改变了,为了保证上下文还是CustomDialogUser,需要指定this的指向。
可以看看es6的箭头函数
https://www.liaoxuefeng.com/wiki/1022910821149312/1031549578462080