往期鸿蒙5.0全套实战文章必看:(文中附带全栈鸿蒙5.0学习资料)
@LocalBuilder装饰器: 维持组件父子关系
当开发者使用@Builder做引用数据传递时,会考虑组件的父子关系,使用了bind(this)之后,组件的父子关系和状态管理的父子关系并不一致。为了解决组件的父子关系和状态管理的父子关系保持一致的问题,引入@LocalBuilder装饰器。@LocalBuilder拥有和局部@Builder相同的功能,且比局部@Builder能够更好的确定组件的父子关系和状态管理的父子关系。
说明:
从API version 12开始支持。
装饰器使用说明
自定义组件内自定义构建函数
定义的语法:
@LocalBuilder MyBuilderFunction() { ... }
使用方法:
this.MyBuilderFunction()
- 允许在自定义组件内定义一个或多个@LocalBuilder方法,该方法被认为是该组件的私有、特殊类型的成员函数。
- 自定义构建函数可以在所属组件的build方法和其他自定义构建函数中调用,但不允许在组件外调用。
- 在自定义函数体中,this指代当前所属组件,组件的状态变量可以在自定义构建函数内访问。建议通过this访问自定义组件的状态变量而不是参数传递。
限制条件
-
@LocalBuilder只能在所属