HarmonyOS 鸿蒙Next ArkUI提供$$作为按引用传递参数的范式 是否只是一种范式 无实际作用

发布于 1周前 作者 zlyuanteng 来自 鸿蒙OS

HarmonyOS 鸿蒙Next ArkUI提供$$作为按引用传递参数的范式 是否只是一种范式 无实际作用

按引用传递参数时,如果在@Builder方法内调用自定义组件,ArkUI提供$$作为按引用传递参数的范式。, 是不是只是一种范式,没有什么作用?

代码如下,当我将 $$ 改成 其他(params),似乎也没有任何区别
 

class Tmp {

  paramA1: string = ‘’

}

@Builder function overBuilder($$: Tmp) {

  Row() {

    Column() {

      Text(overBuilder===${$$.paramA1})

      HelloComponent({message: $$.paramA1})

    }

  }

}

@Component

struct HelloComponent {

  @Prop message: string;

  build() {

    Row() {

      Text(HelloComponent===${this.message})

    }

  }

}

@Entry

@Component

struct Parent {

  @State label: string = ‘Hello’;

  build() {

    Column() {

      // 在父组件中调用overBuilder组件时,

      // 把this.label通过引用传递的方式传给overBuilder组件。

      overBuilder({paramA1: this.label})

      Button(‘Click me’).onClick(() => {

        // 单击Click me后,UI文本从Hello更改为ArkUI。

        this.label = ‘ArkUI’;

      })

    }

  }

}


更多关于HarmonyOS 鸿蒙Next ArkUI提供$$作为按引用传递参数的范式 是否只是一种范式 无实际作用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复
$$结合[@Build](/user/Build)按引用传递使用时,确实只是一个范式,和普通param没啥区别

更多关于HarmonyOS 鸿蒙Next ArkUI提供$$作为按引用传递参数的范式 是否只是一种范式 无实际作用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS的分布式文件系统让我在多设备间传输文件变得轻松无比。

$$ 是有双向绑定的作用的。

在内置组件中,确实有这个效果,但是 @Build按引用传递使用时,目前我没发现特别之处

在HarmonyOS鸿蒙的ArkUI框架中,$$作为按引用传递参数的范式,并非仅是一种形式上的表示,而是具有实际的功能作用。

在ArkUI的某些场景和组件中,$$被用作一种特殊的语法,以支持参数的按引用传递。这意味着,当通过$$传递参数时,传递的是参数的引用,而非其值的拷贝。因此,如果在函数或组件内部对参数进行了修改,这些修改将反映到原始变量上。这种机制在需要共享或修改数据时非常有用,因为它避免了不必要的数据拷贝,提高了程序的效率和性能。

具体来说,$$的使用场景包括但不限于:

  • 在自定义组件或函数中,需要传递复杂数据类型(如对象或数组)并允许对其进行修改时。
  • 在状态管理中,当需要跨组件或函数共享和更新状态时。

需要注意的是,$$的使用应谨慎,因为它可能导致数据的不可预测性,特别是在多线程或异步编程环境中。开发者应确保在使用$$时,对数据的访问和修改是安全的。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部