组件内状态
- @State装饰的变量,称为状态变量
- 状态变量与组件的渲染绑定起来
- 当状态变量改变时,UI会重新渲染,以便用户察觉界面变化
- 声明时必须注明类型,初始值。支持常见变量类型。
子组件状态
- 一个组件的某个状态,由上一级组件决定: @Prop
- 有时候子组件可以把状态变化,再同步到父组件:@Link
多层组件状态
- 当要传递的状态超过2层组件以上:@Provide + @Consume 成对使用
- 类似商品流通中的 生产者/消费者,中间环节很多
- 状态修改双向同步,无论间隔多少层
- 按变量名直接同步,摆脱参数传递
深层变量状态观察
- 变量的深层属性观察:this.title.name.flag = 'A’
- 数组变量单个元素的属性:this.videos[0].tag = 2
- 用@Observed修饰变量,使其可被深层观察
- 用@ObjectLink来接收,变化双向同步
总结
- 组件内状态: @State
- 子组件接收父组件传播的状态: @Prop
- 子组件接收父组件状态,但可以反馈更改:@Link
- 组件不向特定的子孙组件提供状态:@Provide,子孙接受:@Consume
- 深层属性观察:@Observed / @ObjectLink