【鸿蒙HarmonyOS】状态管理 @State、@Prop、@Link、@Provide和@Consume、@Observe和@ObserveLink

@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。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。