样式&结构重用: //提升编码效率,减少重复代码,提升代码可读性。
1.@Styles: //@Styles 可以抽取 通用的事件和属性
@Styles 不支持传递参数 可以继续添加样式覆盖 @Styles 中定义的内容
组件内部写法,可以通过 this 访问组件属性
@Styles function functionName() {.通用属性().通用事件(()=>{})} //全局定义
如果要在组件内定义:@Styles fancy() {.通用属性().通用事件(()=>{this.xxx})} //能使用状态
Column(){组件().fancy()组件().functionName()} // 使用
2.@Extend: //通过 Extend 可以扩展组件的样式、事件, 实现复用效果
语法:不同于@Styles,@Extend只能定义在全局,并且可以传递参数
比如 @Extend(Text) ,那么后续通过 Text 才可以点出该扩展
如:@Extend(组件名) function functionName(参数1....) {.属性().事件(()=>{})} // 定义
组件(){}.functionName(参数1...) // 使用
3.@Builder(常用)//如果连结构也需要抽取,就可以使用@Builder,他也可以叫做 自定义构建函数
如果组件内 自定义构建函数 需要通过 this 访问,内部可以通过 this 使用组件属性
如果全局 自定义构建函数 没有上述特点
// 自定义 如果组件内 构建函数
@Builder MyBuilderFunction( param1,param2...) {结构、属性、事件放这里}
this.MyBuilderFunction(param1,param2...) // 通过 this 来使用
//自定义 如果全局 构建函数
@Builder function MyGlobalBuilderFunction(param1,param2...) {结构、属性、事件放这里}
MyGlobalBuilderFunction(param1,param2...) //使用
4.总结:
@Styles 抽取 公共样式、事件 不可以传递参数
@Extend 抽取 特定组件 样式、事件 可以传递参数
@Builder 抽取 结构、样式、事件 可以传递参数