当前位置: 首页 > news >正文

HarmonyOS NEXT学习——@BuilderParam装饰器

初步理解,相当于VUE的插槽slot


@Builder function overBuilder() {}@Component
struct Child {label: string = `Child`@Builder customBuilder() {}@Builder customChangeThisBuilder() {}@BuilderParam customBuilderParam: () => void = this.customBuilder; // 使用自定义组件的自定义构建函数初始化@BuilderParam@BuilderParam customChangeThisBuilderParam: () => void = this.customChangeThisBuilder; // 使用自定义组件的自定义构建函数初始化@BuilderParam@BuilderParam customOverBuilderParam: () => void = overBuilder; // 使用全局自定义构建函数初始化@BuilderParambuild() {Column() {this.customBuilderParam()this.customChangeThisBuilderParam()this.customOverBuilderParam()}}
}@Entry
@Component
struct Parent {label: string = `Parent`button: string =`are you ok??`@Builder componentBuilder() {Text(`${this.label}`).fontSize(50)}@Builder customChangeOverBuilderParam(){Button(this.label)}build() {Column() {Child({ customBuilderParam: this.componentBuilder }) //this指向的是Parent的componentBuilder,componentBuilder里的this指向的是Child,所以label的值为“Child”Child({ customChangeThisBuilderParam: ():void=>{this.componentBuilder()}}) //通过():void=>{this.componentBuilder()}的形式传给子组件,因为箭头函数的this指向的是宿主对象,所以label的值为“Parent”Child({ customBuilderParam: this.componentBuilder,customChangeThisBuilderParam: ():void=>{this.componentBuilder()},customOverBuilderParam:():void=>{this.customChangeOverBuilderParam()}}) //正确组合写法,上面两条分别调Child为了区分}}

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • golang mux组件兼容转移url
  • 【Linux】安装PHP扩展-redis
  • 【B树、B-树、B+、B*树】
  • 框架设计MVC
  • 暴力风扇无刷电机驱动方案pcba设计研发
  • 阿里云短信PHP集成api类
  • 【gpt】学习笔记:ChatGPT 用于 3D 内容生成搭配nvidia deepsearch
  • stm32使用通用定时器生成pwm
  • jenkins系列-07.轻易级jpom安装
  • FPGA CFGBVS 管脚接法
  • 彻底改变时尚:使用 GAN 实现 AI 的未来
  • 【自撰写】【国际象棋入门】第11课 对局实例分析(一)
  • LabVIEW红外热波图像缺陷检
  • 不想填邀请码?Xinstall来帮你,一键安装无忧愁
  • Laravel数据库的魔法棒:深入探索数据库迁移(Migrations)
  • JavaScript 如何正确处理 Unicode 编码问题!
  • crontab执行失败的多种原因
  • extract-text-webpack-plugin用法
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JavaScript实现分页效果
  • Java知识点总结(JavaIO-打印流)
  • JS实现简单的MVC模式开发小游戏
  • JS题目及答案整理
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • storm drpc实例
  • XForms - 更强大的Form
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 每天一个设计模式之命令模式
  • 微服务核心架构梳理
  • 小程序开发之路(一)
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 阿里云服务器如何修改远程端口?
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​queue --- 一个同步的队列类​
  • ​Spring Boot 分片上传文件
  • ​力扣解法汇总946-验证栈序列
  • $(selector).each()和$.each()的区别
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (pycharm)安装python库函数Matplotlib步骤
  • (solr系列:一)使用tomcat部署solr服务
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (八)Flask之app.route装饰器函数的参数
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (论文阅读11/100)Fast R-CNN
  • (一) 初入MySQL 【认识和部署】
  • (一)RocketMQ初步认识
  • (译) 函数式 JS #1:简介
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)shell调试方法
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .ai域名是什么后缀?
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core WebAPI中封装Swagger配置