状态名 | 同步 | 位置 | 初始值 | 变量类型 | 不支持的UL刷新 | 注意事项 |
---|---|---|---|---|---|---|
State | 父组件 | 必填 | Object、classstring、number、boolean、enum类型,以及这些类型的数组。支持Date类型。 | 对象的对象数组属性更新数组对象的属性更新 | @ State装饰的变量必须初始化,否则编译期会报错。@State不支持装饰Function类型的变量,框架会抛出运行错误。 | |
Prop | 单项 | 子组件 | 不必填 | Object、class、string、number、boolean、enum类型,以及这些类型的数组。不支持any,支持undefined和null。支持Date类型。 | Prop变量允许在本地修改,但修改后的变化不会同步回父组件。 | · @Prop装饰变量时会进行深拷贝,在拷贝的过程中除了基本类型、Map、Set、Date、Array外,都会丢失类型。例如[PixelMap](#状态名 同步 位置 初始值 变量类型 不支持的UL刷新 注意事项 State 父组件 必填 Object、classstring、number、boolean、enum类型,以及这些类型的数组。支持Date类型。 对象的对象数组属性更新数组对象的属性更新 @ State装饰的变量必须初始化,否则编译期会报错。@State不支持装饰Function类型的变量,框架会抛出运行错误。 Prop 单项 子组件 不必填 Object、class、string、number、boolean、enum类型,以及这些类型的数组。不支持any,支持undefined和null。支持Date类型。 Prop变量允许在本地修改,但修改后的变化不会同步回父组件。 · @Prop装饰变量时会进行深拷贝,在拷贝的过程中除了基本类型、Map、Set、Date、Array外,都会丢失类型。例如PixelMap等通过NAPI提供的复杂类型,由于有部分实现在Native侧,因此无法在ArkTS侧通过深拷贝获得完整的数据。Prop需要被初始化,如果没有进行本地初始化的,则必须通过父组件进行初始化。如果进行了本地初始化,那么是可以不通过父组件进行初始化的。· @Prop装饰器不能在@Entry装饰的自定义组件中使用。· Link 双向 子组件 必选 Object、class、string、number、boolean、enum类型,以及这些类型的数组。支持Date类型。 即父组件中状态变量更新,引起相关子组件的@Link的更新。 1. @Link装饰器不能在@Entry装饰的自定义组件中使用。@Link装饰的变量禁止本地初始化,否则编译期会报错。2. 在子组件中使用@Link装饰状态变量需要保证该变量与数据源类型完全相同,且该数据源需为被诸如@State等装饰器装饰的状态变量。3. 当@State变量放在build函数后定义,用来初始化@Link变量时,会被识别为常量,而@Link变量不能被常量初始化,所以会造成编译报错。 Provide 双向 子组件 必须 Object、class、string、number、boolean、enum类型,以及这些类型的数组。支持Date类型。 点击父组件Parent中的Button改变count的属性或者类型,Child中也会对应刷新。 1. @Provider/@Consumer的参数key必须为string类型,否则编译期会报错。 Consume 双向 子组件 Object、class、string、number、boolean、enum类型,以及这些类型的数组。支持Date类型。支持ArkUI框架定义的联合类型Length、ResourceStr、ResourceColor类型。必须指定类型。 点击父组件Parent中的Button改变count的属性或者类型,Child中也会对应刷新。 1. @Consume装饰的变量不能本地初始化,也不能在构造参数中传入初始化,否则编译期会报错。@Consume仅能通过key来匹配对应的@Provide变量进行初始化。在此场景下,CustomWidget执行this.builder()创建子组件CustomWidgetChild时,this指向的是HomePage。因此找不到CustomWidget的@Provide变量,所以下面示例会报找不到@Provide错误,和@BuilderParam连用的时候要谨慎this的指向。)等通过NAPI提供的复杂类型,由于有部分实现在Native侧,因此无法在ArkTS侧通过深拷贝获得完整的数据。Prop需要被初始化,如果没有进行本地初始化的,则必须通过父组件进行初始化。如果进行了本地初始化,那么是可以不通过父组件进行初始化的。· @Prop装饰器不能在@Entry装饰的自定义组件中使用。· |
Link | 双向 | 子组件 | 必选 | Object、class、string、number、boolean、enum类型,以及这些类型的数组。支持Date类型。 | 即父组件中状态变量更新,引起相关子组件的@Link的更新。 | 1. @Link装饰器不能在[@Entry](#状态名 同步 位置 初始值 变量类型 不支持的UL刷新 注意事项 State 父组件 必填 Object、classstring、number、boolean、enum类型,以及这些类型的数组。支持Date类型。 对象的对象数组属性更新数组对象的属性更新 @ State装饰的变量必须初始化,否则编译期会报错。@State不支持装饰Function类型的变量,框架会抛出运行错误。 Prop 单项 子组件 不必填 Object、class、string、number、boolean、enum类型,以及这些类型的数组。不支持any,支持undefined和null。支持Date类型。 Prop变量允许在本地修改,但修改后的变化不会同步回父组件。 · @Prop装饰变量时会进行深拷贝,在拷贝的过程中除了基本类型、Map、Set、Date、Array外,都会丢失类型。例如PixelMap等通过NAPI提供的复杂类型,由于有部分实现在Native侧,因此无法在ArkTS侧通过深拷贝获得完整的数据。Prop需要被初始化,如果没有进行本地初始化的,则必须通过父组件进行初始化。如果进行了本地初始化,那么是可以不通过父组件进行初始化的。· @Prop装饰器不能在@Entry装饰的自定义组件中使用。· Link 双向 子组件 必选 Object、class、string、number、boolean、enum类型,以及这些类型的数组。支持Date类型。 即父组件中状态变量更新,引起相关子组件的@Link的更新。 1. @Link装饰器不能在@Entry装饰的自定义组件中使用。@Link装饰的变量禁止本地初始化,否则编译期会报错。2. 在子组件中使用@Link装饰状态变量需要保证该变量与数据源类型完全相同,且该数据源需为被诸如@State等装饰器装饰的状态变量。3. 当@State变量放在build函数后定义,用来初始化@Link变量时,会被识别为常量,而@Link变量不能被常量初始化,所以会造成编译报错。 Provide 双向 子组件 必须 Object、class、string、number、boolean、enum类型,以及这些类型的数组。支持Date类型。 点击父组件Parent中的Button改变count的属性或者类型,Child中也会对应刷新。 1. @Provider/@Consumer的参数key必须为string类型,否则编译期会报错。 Consume 双向 子组件 Object、class、string、number、boolean、enum类型,以及这些类型的数组。支持Date类型。支持ArkUI框架定义的联合类型Length、ResourceStr、ResourceColor类型。必须指定类型。 点击父组件Parent中的Button改变count的属性或者类型,Child中也会对应刷新。 1. @Consume装饰的变量不能本地初始化,也不能在构造参数中传入初始化,否则编译期会报错。@Consume仅能通过key来匹配对应的@Provide变量进行初始化。在此场景下,CustomWidget执行this.builder()创建子组件CustomWidgetChild时,this指向的是HomePage。因此找不到CustomWidget的@Provide变量,所以下面示例会报找不到@Provide错误,和@BuilderParam连用的时候要谨慎this的指向。)装饰的自定义组件中使用。@Link装饰的变量禁止本地初始化,否则编译期会报错。2. 在子组件中使用@Link装饰状态变量需要保证该变量与数据源类型完全相同,且该数据源需为被诸如@State等装饰器装饰的状态变量。3. 当@State变量放在build函数后定义,用来初始化@Link变量时,会被识别为常量,而@Link变量不能被常量初始化,所以会造成编译报错。 |
Provide | 双向 | 子组件 | 必须 | Object、class、string、number、boolean、enum类型,以及这些类型的数组。支持Date类型。 | 点击父组件Parent中的Button改变count的属性或者类型,Child中也会对应刷新。 | 1. @Provider/@Consumer的参数key必须为string类型,否则编译期会报错。 |
*Consume* | 双向 | 子组件 | Object、class、string、number、boolean、enum类型,以及这些类型的数组。支持Date类型。支持ArkUI框架定义的联合类型Length、ResourceStr、ResourceColor类型。必须指定类型。 | 点击父组件Parent中的Button改变count的属性或者类型,Child中也会对应刷新。 | 1. @Consume装饰的变量不能本地初始化,也不能在构造参数中传入初始化,否则编译期会报错。@Consume仅能通过key来匹配对应的@Provide变量进行初始化。在此场景下,CustomWidget执行this.builder()创建子组件CustomWidgetChild时,this指向的是HomePage。因此找不到CustomWidget的@Provide变量,所以下面示例会报找不到@Provide错误,和@BuilderParam连用的时候要谨慎this的指向。 |
初始值变量类型
诗歌难吟4642025-01-07 16:04
相关推荐
2401_8975796525 分钟前
AI赋能房地产:利用AI前端技术提升VR/AR浏览体验JermeryBesian30 分钟前
Flink概念知识讲解之:Restart重启策略配置天草二十六_简村人34 分钟前
微服务框架,Http异步编程中,如何保证数据的最终一致性小馋喵知识杂货铺34 分钟前
XPath语法详解及案例讲解komo莫莫da36 分钟前
第5章——与HTTP协作的Web服务器一二小选手37 分钟前
【SpringBoot】日志处理-异常日志(Logback)来一杯龙舌兰41 分钟前
【Jboss/Windows】Tomcat 8 + JDK 8 升级为 Jboss eap 7 + JDK8华科云商xiao徐44 分钟前
Python 2.7.3中使用eval和list来求解数学表达式夏壹-10分分享1 小时前
get和post有什么区别一个单纯的少年1 小时前
Chrome 查看 session 信息