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

网站建设 设计提成网站导航你一定会回来感谢我的

网站建设 设计提成,网站导航你一定会回来感谢我的,上海seo优化培训机构,类网站建设前言#xff1a; 前面我们认识了Builder装饰器#xff1a;自定义构建函数#xff0c;今天我们继续认识下一个装饰器——BuilderParam装饰器。 当开发者创建了自定义组件#xff0c;并想对该组件添加特定功能时#xff0c;例如在自定义组件中添加一个点击跳转操作。若直接…前言 前面我们认识了Builder装饰器自定义构建函数今天我们继续认识下一个装饰器——BuilderParam装饰器。 当开发者创建了自定义组件并想对该组件添加特定功能时例如在自定义组件中添加一个点击跳转操作。若直接在组件内嵌入事件方法将会导致所有引入该自定义组件的地方均增加了该功能。为解决此问题ArkUI引入了BuilderParam装饰器BuilderParam用来装饰指向Builder方法的变量开发者可在初始化自定义组件时对此属性进行赋值为自定义组件增加特定的功能。该装饰器用于声明任意UI描述的一个元素类似slot占位符。 注意⚠️从API version 9开始该装饰器支持在ArkTS卡片中使用。 BuilderParam装饰器的使用说明 BuildParam装饰的方法只能被自定义构建函数Builder装饰的方法初始化。 使用所属自定义组件的自定义构建函数或者全局的自定义构建函数在本地初始化BuilderParam。 Builder function GlobalBuilder0() {}Component struct Child {Builder doNothingBuilder() {};BuilderParam aBuilder0: () void this.doNothingBuilder;BuilderParam aBuilder1: () void GlobalBuilder0;build(){} }用父组件自定义构建函数初始化子组件BuildParam装饰的方法。 Component struct Child {BuilderParam aBuilder0: () void;build() {Column() {this.aBuilder0()}} }Entry Component struct Parent {Builder componentBuilder() {Text(Parent builder )}build() {Column() {Child({ aBuilder0: this.componentBuilder })}} }需注意this指向正确。 以下示例中Parent组件在调用this.componentBuilder()时this.label指向其所属组件即“Parent”。Builder componentBuilder()传给子组件BuilderParam aBuilder0在Child组件中调用this.aBuilder0()时this.label指向在Child的label即“Child”。 Component struct Child {label: string ChildBuilderParam aBuilder0: () void;build() {Column() {this.aBuilder0()}} }Entry Component struct Parent {label: string ParentBuilder componentBuilder() {Text(${this.label})}build() {Column() {this.componentBuilder()Child({ aBuilder0: this.componentBuilder })}} }注意⚠️开发者谨慎使用bind改变函数调用的上下文可能会使this指向混乱。 BuilderParam装饰器的使用场景 1:参数初始化组件 BuilderParam装饰的方法可以是有参数和无参数的两种形式需与指向的Builder方法类型匹配。BuilderParam装饰的方法类型需要和Builder方法类型一致。 举个列子 Builder function GlobalBuilder1($$ : {label: string }) {Text($$.label).width(400).height(50).backgroundColor(Color.Blue) }Component struct Child {label: string Child// 无参数类指向的componentBuilder也是无参数类型BuilderParam aBuilder0: () void;// 有参数类型指向的GlobalBuilder1也是有参数类型的方法BuilderParam aBuilder1: ($$ : { label : string}) void;build() {Column() {this.aBuilder0()this.aBuilder1({label: global Builder label } )}} }Entry Component struct Parent {label: string ParentBuilder componentBuilder() {Text(${this.label})}build() {Column() {this.componentBuilder()Child({ aBuilder0: this.componentBuilder, aBuilder1: GlobalBuilder1 })}} }2:参数初始化组件 在自定义组件中使用BuilderParam装饰的属性时也可通过尾随闭包进行初始化。在初始化自定义组件时组件后紧跟一个大括号“{}”形成尾随闭包场景。 开发者可以将尾随闭包内的内容看做Builder装饰的函数传给BuilderParam。举个例子 // xxx.ets Component struct CustomContainer {Prop header: string;BuilderParam closer: () voidbuild() {Column() {Text(this.header).fontSize(30)this.closer()}} }Builder function specificParam(label1: string, label2: string) {Column() {Text(label1).fontSize(30)Text(label2).fontSize(30)} }Entry Component struct CustomContainerUser {State text: string header;build() {Column() {// 创建CustomContainer在创建CustomContainer时通过其后紧跟一个大括号“{}”形成尾随闭包// 作为传递给子组件CustomContainer BuilderParam closer: () void的参数CustomContainer({ header: this.text }) {Column() {specificParam(testA, testB)}.backgroundColor(Color.Yellow).onClick(() {this.text changeHeader;})}}} }注意⚠️此场景下自定义组件内有且仅有一个使用BuilderParam装饰的属性。 总结 BuilderParam用来装饰指向Builder方法的变量开发者可在初始化自定义组件时对此属性进行赋值为自定义组件增加特定的功能。该装饰器用于声明任意UI描述的一个元素类似slot占位符。BuildParam装饰的方法只能被自定义构建函数Builder装饰的方法初始化。在参数初始化组件时BuilderParam装饰的方法可以是有参数和无参数的两种形式需与指向的Builder方法类型匹配。BuilderParam装饰的方法类型需要和Builder方法类型一致。在尾随闭包初始化组件时组件后紧跟一个大括号“{}”形成尾随闭包场景。开发者可以将尾随闭包内的内容看做Builder装饰的函数传给BuilderParam。但是注意此场景下自定义组件内有且仅有一个使用BuilderParam装饰的属性。
http://www.w-s-a.com/news/776048/

相关文章:

  • 网站设计初步规划公司网页打不开是什么原因
  • 深圳企业网站建设推广服务php做的商城网站设计论文
  • 韩雪冬网站手机网站开发 宽度
  • 奉贤专业做网站新手怎么做企业网站
  • 做网站用哪几个端口 比较好手机号网站源码
  • 手机免费代理ip网站那个旅游网站做攻略最好
  • 西安做网站找哪家公司好苏州专业网站建设开发
  • dedecms如何做网站网站设计实施方案
  • 网站建设合约品牌设计有哪些
  • 织梦企业门户网站宝塔搭建wordpress网站
  • 网站为什么没有排名了11月将现新冠感染高峰
  • 网站开发维护专员岗位职责辽阳企业网站建设
  • 做外国订单有什么网站网站设计论文提纲
  • 商城网站建设报价方案导师让做网站
  • 清远市企业网站seo联系方式动易官方网站
  • 手机上怎么做能打开的网站一级域名和二级域名跨域
  • 网站首页效果图wordpress 在线教育
  • 电商网站开发团队广西桂林商贸旅游技工学校
  • 网站模板文件怎么下载东莞常平镇邮政编码
  • 建网站需要什么wordpress误删的后果
  • wordpress无插件实现网站地图做阿里巴巴网站店铺装修费用
  • 英文互动网站建设南宁住房和城乡建设局网站
  • 威海微网站建设乐清建网站哪家强
  • 网站和app的开发成本saas系统开发教程
  • ps切片工具做网站大气简洁网站
  • 网至普的营销型网站建设wordpress邮箱验证插件下载
  • 找权重高的网站方法张家港早晨网站建设
  • WordPress数据库添加管理员关键词优化举例
  • 河南国基建设集团--官方网站wordpress qode
  • 做农村电子商务的网站有哪些内容静态网站模板古典