首先要明白什么是“状态变量”?即被状态装饰器(@State、@Prop、@Link、@Provide、@Consume)修饰的变量,比如 @State str : string=''; str就是状态变量。状态变量值的改变会引起UI界面重新渲染。
@State
@State装饰的变量,是私有的,只能被组件内部访问,在声明时必须指定其类型和本地初始化。
@Prop
父组件与子组件单向同步,@Prop装饰的变量变化后不会同步影响其父组件。
@Link
父、子组件双向同步,子组件中被@Link装饰的变量与其父组件中对应的数据源建立双向数据绑定。
@Provide和@Consume
应用于与后代组件的双向数据同步,适用于状态数据在多个层级之间传递的场景。不同于上文提到的父子组件之间的状态传递,@Provide和@Consume实现跨层级传递,不受限父、子之间,还可以父、孙之间传递(跨过子组件)。
可以通过相同的变量名或者相同的变量别名绑定,变量类型必须相同。比如,@Provide num : number&#