@State
- 状态变量,一般用于状态和UI的绑定,状态改变时,UI同步刷新。
- 允许修饰的变量:string、number、boolean、enum、Object(不包含嵌套Object)、class。
- 使用时指定类型及初始值:
@State a:string = ''
。
@Prop
- 一般用于父组件向子组件的单向传值,子组件修改不会影响父组件,但是父组件修改后会覆盖子组件的值。
- 允许修饰的变量:string、number、boolean、enum。
- 常用场景:父组件@State,子组件@Prop。
- 使用时指定类型:
@Prop a:string
。
@Link
- 双向绑定,类似vue中的v-model,不能在入口文件(@entry修饰的组件)中使用
- 使用场景:父组件@State,子组件@Link。
- 使用时指定类型:
@Link a:string
。
@Provide和@Consume
- 双向绑定,类似@State和@Link,应用于与后代组件的双向数据同步,数据在多个层级传递的场景
@Observe和@ObserveLink
- 数据绑定,应用于嵌套数据类型,比如数组内嵌数组,model内嵌model
- 使用时model上面添加@Observe,组件内修饰时用@ObserveLink。