看如下代码
@Prop
@Entry
@Component
struct Parent {
@State data: number = 5;
build() {
Row(){
Text(this.data.toString()).fontSize(30)
Child({ data: this.data })
}
//
}
}
@Component
struct Child {
@Prop data: number;
build() {
Row(){
Button(`Update Data`).onClick(() => {
this.data += 10;
})
Text(this.data.toString()) .fontSize(30)
}
}
}
效果图
可以看到 父组件的值传过来后 点击按钮 子组件的值更新了 并没有同步父组件
在看
@Link
@Entry
@Component
struct Parent {
@State data: number = 5;
build() {
Row(){
Text(this.data.toString()).fontSize(30)
Child({ data: this.data })
}
//
}
}
@Component
struct Child {
@Link data: number;
build() {
Row(){
Button(`Update Data`).onClick(() => {
this.data += 10;
})
Text(this.data.toString()) .fontSize(30)
}
}
}
看效果图
可以看到 父组件的值传过来后 点击按钮 子组件的值更新了 并且同步了父组件
由此可见 @Prop和@Link都是接收父组件的值的 但是@Prop是单向的 @Link是双向的