美文网首页
@State 、@Link 、 @Prop的区别

@State 、@Link 、 @Prop的区别

作者: _RG | 来源:发表于2024-12-18 09:38 被阅读0次
  1. @State 装饰的属性必须设置默认值
  2. @State 装饰的属性 可以作为子组件的 数据来源, 当其数值改变时,会引起相关组件的渲染刷新

例如


@Entry
@Component
struct PropAndLinkPage {
//这里必须设置默认值
  @State message: string = 'Hello World';

  build() {
    Column(){

      Text(this.message)
      LinkCompoent({mes: this.message})

      Button('父组件点我').onClick( e => {
        this.message = '在父组件中修改message值为 999'
      })
    }

  }
}

@Component
struct PropCompoent {

  @Prop mes: string //用Prop修饰的成员属性, 接收父组件的传递的 state修饰的参数时, 会自动刷新UI,
  // 但是在子组件内修改成员属性的值, 父组件对应的成员变量的值不会改变并刷新UI
  build() {

    Column() {
      Text(this.mes)
        Button('子组件点我').onClick( e => {
        this.mes = '在子组件中修改mes的值 7777'

      })
    }
  }

}


@Component
struct LinkCompoent {

//这里不能设置默认值, 会报错, 如果这里用State修饰, 则不能够进行和父组件的双向同步
  @Link mes: string   //用Link修饰的成员属性, 接收父组件的传递的 state修饰的参数时, 会自动刷新UI,且在子组件中修改属性值, 会同步到父组件中,且刷新父组件中的UI,
  //@link 类似于传递了指针给子组件

  build() {

    Column() {
      Text(this.mes)
      Button('子组件点我').onClick( e => {
        this.mes = '在子组件中修改mes的值 888'
      })

    }
  }
}

  1. @Link 装饰的属性不能设置默认值, 只能通过组件初始化时传值
  2. @Link 装饰的属性 变量可以和父组件建立双向同步关系, 当在子组件改变@Link 装饰的属性, 会同步到父组件中传入的@State修饰的属性, 同样在父组件中修改@State, 修饰的属性值, 也会同步到子组件中 @Link 装饰的属性
  1. @Prop 装饰的属性 可以设置默认值, 也可以不设置
  2. @Prop 装饰的属性 变量可以和父组件建立单向同步关系, 当在子组件改变@Prop 装饰的属性, 不会同步到父组件中传入的@State修饰的属性, 但是在父组件中修改@State, 修饰的属性值, 会同步到子组件中 @Prop 装饰的属性

相关文章

  • react小记 prop和state的区别

    1.prop用于定义外部接口,state用于记录内部状态 2,prop 的赋值在外部世界使用组件时,state的赋...

  • React:组件的数据

    React组件的数据分为两种,prop和state,无论prop或者state的改变,都可能引发组件的重新渲染,那...

  • 深入React组件的数据:prop、state

    React组件的数据分为两种,prop和state,无论prop或者state改变,都可能引发组件的重新渲染。 p...

  • props 和state 的理解

    React组件的数据分为两种,prop和state,无论prop或者state改变,都可能引发组件的重新渲染。 p...

  • Redux——React 组件中的数据传输

    React中的数据有两种:prop和state。其中prop负责对外的数据交互,state负责内部的数据管理。 R...

  • React之State

    State 如何组织数据是程序的最重要问题。Raect组件的数据分为两种:prop和state。无论prop还是s...

  • React的数据流

    1. state1.1.什么是state1.2.如何更新state1.3.state有几种内部状态 2. prop...

  • React prop和state

    React中组织数据的形式有两种,分别是prop和state。 prop prop是组件对外的接口,即是外部传递给...

  • 二、react一些用法

    1、组件变量 state = { },this.setState,调用this.state2、link传参数htt...

  • Jquery中的`attr`和`prop`的区别

    Jquery中的attr和prop的区别 测试唤醒: Google attr和prop的作用和区别   attr和...

网友评论

      本文标题:@State 、@Link 、 @Prop的区别

      本文链接:https://www.haomeiwen.com/subject/lcyrejtx.html