内容提要
@Param装饰器增强了子组件接收外部参数的能力,支持父子组件数据同步和多种数据源。它允许本地初始化和单向同步,但不允许在子组件中修改。与V1版本相比,@Param简化了传值规则,适用于多种数据类型,提高了状态管理的灵活性和性能。
关键要点
-
使用@Param装饰器增强子组件接收外部参数的能力,支持父子组件数据同步。
-
从API version 12开始,在@ComponentV2装饰的自定义组件中支持@Param装饰器。
-
支持本地初始化,但不允许在组件内部直接修改变量本身。
-
@Param支持多种数据源,包括普通变量、状态变量、常量、函数返回值等。
-
@Param装饰的变量变化时,会刷新关联的组件。
-
与状态管理V1版本相比,@Param简化了传值规则,适用于多种数据类型。
-
被装饰变量的初始值允许本地初始化,若不在本地初始化,则需和@Require装饰器一起使用。
-
从父组件初始化@Param装饰的变量允许本地初始化,若无本地初始化则必须从外部传入初始化。
-
基本类型可以观察来自数据源同步的变化,但类对象的属性变化需依赖@ObservedV2和@Trace装饰器。
-
简单类型数组可以观察到数组整体或数组项的变化。
-
嵌套类或对象数组@Param无法观察深层对象属性的变化。
-
内置类型(Array、Date、Map、Set)可以观察整体赋值及相关接口调用带来的变化。
-
@Param装饰器只能在@ComponentV2装饰器的自定义组件中使用。
-
@Param装饰的变量在子组件中无法进行修改,但可修改对象类型变量的内部属性。
-
@Param支持null、undefined以及联合类型,提供更灵活的状态管理机制。
延伸问答
@Param装饰器的主要功能是什么?
@Param装饰器增强了子组件接收外部参数的能力,支持父子组件数据同步。
@Param装饰器与V1版本相比有什么改进?
@Param装饰器简化了传值规则,适用于多种数据类型,提高了状态管理的灵活性和性能。
@Param装饰器支持哪些数据类型?
@Param装饰器支持基本类型、内置类型(如Array、Date、Map、Set)以及null、undefined和联合类型。
如何初始化@Param装饰的变量?
被装饰变量的初始值允许本地初始化,若不在本地初始化,则需和@Require装饰器一起使用,从外部传入初始化。
@Param装饰器在子组件中可以修改变量吗?
@Param装饰的变量在子组件中无法进行修改,但可以修改对象类型变量的内部属性。
@Param装饰器如何处理数组类型的变化?
简单类型数组可以观察到数组整体或数组项的变化。