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

有没有做生鲜配送的网站linode 安装wordpress

有没有做生鲜配送的网站,linode 安装wordpress,如何在免费网站上做推扩,用家庭宽带做网站 没有8080端口可以吗前言 本文基于Api13 很多的场景下,父组件需要触发子组件中的某个方法,来实现一些特定的逻辑,但是ArkUI是声明式UI,不能直接调用子组件中的方法,那么怎么去实现这个功能呢? 举一个很常见的案例,通…

前言

本文基于Api13

很多的场景下,父组件需要触发子组件中的某个方法,来实现一些特定的逻辑,但是ArkUI是声明式UI,不能直接调用子组件中的方法,那么怎么去实现这个功能呢?

举一个很常见的案例,通过调用子组件中的某个方法,实现子组件UI的更新,简单的代码如下,只有通过调用changeUI方法,才会触发UI的更新。

@Component
struct Child {@State message: string = "我是子组件"/***AUTHOR:AbnerMing*INTRODUCE:子组件方法*/changeUI() {this.message = "子组件UI更新了"}build() {Text(this.message).width("100%").height(50).backgroundColor(Color.Pink).textAlign(TextAlign.Center)}
}

方式一:@Watch装饰器

如果你是用的V1版本装饰器,我们可以使用@Watch装饰器很轻松进行实现。

子组件定义@Watch装饰器

@Component
struct Child {@State message: string = "我是子组件"@Prop @Watch("changeUI") isChangeStatus: boolean = false/***AUTHOR:AbnerMing*INTRODUCE:子组件方法*/changeUI() {this.message = "子组件UI更新了"}build() {Text(this.message).width("100%").height(50).backgroundColor(Color.Pink).textAlign(TextAlign.Center)}
}

父组件调用

可通过子组件定义的isChangeStatus属性,不断的变化其值就可以了。

@Entry@Componentstruct DemoPage {@State isChangeStatus: boolean = falsebuild() {Column() {Child({ isChangeStatus: this.isChangeStatus })Button("点击").onClick(() => {this.isChangeStatus = !this.isChangeStatus})}.height('100%').width('100%').justifyContent(FlexAlign.Center)}}

方式二:@Monitor装饰器

和方式一的实现方式是一致的,只不过,@Monitor装饰器是V2版本,也就是说,你使用的是V2版本装饰器的话,可以使用这个。

子组件定义@Monitor装饰器

@ComponentV2
struct Child {@Local message: string = "我是子组件"@Param isChangeStatus: boolean = false/***AUTHOR:AbnerMing*INTRODUCE:子组件方法*/@Monitor("isChangeStatus")changeUI() {this.message = "子组件UI更新了"}build() {Text(this.message).width("100%").height(50).backgroundColor(Color.Pink).textAlign(TextAlign.Center)}
}

父组件调用

@Entry
@ComponentV2
struct DemoPage {@Local isChangeStatus: boolean = falsebuild() {Column() {Child({ isChangeStatus: this.isChangeStatus })Button("点击").onClick(() => {this.isChangeStatus = !this.isChangeStatus})}.height('100%').width('100%').justifyContent(FlexAlign.Center)}
}

方式三:接口回调

定义回调函数

class ChangeController {change = () => {}
}

子组件实现回调

@Component
struct Child {@State message: string = "我是子组件"changeController: ChangeController = new ChangeController()aboutToAppear(): void {if (this.changeController.change != undefined) {this.changeController.change = () => {this.changeUI()}}}/***AUTHOR:AbnerMing*INTRODUCE:子组件方法*/changeUI() {this.message = "子组件UI更新了"}build() {Text(this.message).width("100%").height(50).backgroundColor(Color.Pink).textAlign(TextAlign.Center)}
}

父组件调用函数

@Entry
@Component
struct DemoPage {changeController: ChangeController = new ChangeController()build() {Column() {Child({ changeController: this.changeController })Button("点击").onClick(() => {this.changeController.change()})}.height('100%').width('100%').justifyContent(FlexAlign.Center)}
}

方式四:事件订阅EventHub

订阅事件

@Component
struct Child {@State message: string = "我是子组件"aboutToAppear(): void {getContext().eventHub.on("changeUI", ()=>{this.changeUI()})}/***AUTHOR:AbnerMing*INTRODUCE:子组件方法*/changeUI() {this.message = "子组件UI更新了"}build() {Text(this.message).width("100%").height(50).backgroundColor(Color.Pink).textAlign(TextAlign.Center)}
}

触发事件

@Entry
@Component
struct DemoPage {build() {Column() {Child()Button("点击").onClick(() => {getContext().eventHub.emit('changeUI')})}.height('100%').width('100%').justifyContent(FlexAlign.Center)}
}

相关总结

也许大家可能会有疑问,子组件更新UI,直接由装饰器触发不就行了,希望大家能够明白,以上呢只是简单的案例,在实际的开发中,子组件方法中可能很多的逻辑,比如网络请求,比如数据存储等等,并不是简单的UI更新。

当然了,所举的实现方式也不是全的,可能也有着其它的方式可以实现,大家在实际的开发中选择适合的一种即可。

http://www.dtcms.com/wzjs/830681.html

相关文章:

  • 做网站编辑累吗建一个个人网站需要多少钱
  • 架设网站开发环境河北保定最新通知
  • 网站性能容量的收集与分析怎么做浙江建设厅 继续教育 网站首页
  • 西安网站建设孙正学网站备案 优帮云
  • 厦门网站建设哪家不错推荐雄安优秀网站建设
  • 学前端什么网站好临沂网站制作价格
  • 网站建设万首先金手指13千锋教育学费一览表
  • 凡客官网 电脑版乐清网站优化
  • 小企业网站建设口碑南宁哪有网站建设公司
  • 郑州模板网站制作网页 转发到wordpress
  • 使用dw如何给网站做电影做免费试用的网站
  • 做网盟行业网站的图片广告的销售wordpress+chrome+扩展
  • 河北做网站温州做阀门网站公司
  • 自己做网站服务器的备案方法c2c商城网站建设
  • 织梦珠宝网站模板种子搜索网站开发
  • 佛山营销型网页设计百度爱采购怎么优化排名
  • 网站游戏网站开发cent os wordpress
  • 沧州网站建设定制价格app免费制作网站模板
  • 做ip资讯的网站asp网站如何实现伪静态
  • 网站换域名了怎么办seo小语种服务网站
  • 企业做网站价钱广州新建站
  • 烟台网站开发公司jq效果较多的网站
  • 上传网站安装教程视频教程广州哪里学网络营销比较好
  • 毅冰做外贸是哪个网站有自己域名如何做网站
  • 网站改版建设主要wordpress导航站模版
  • 怎么做招聘网站链接阿里云主机上传网站
  • 创建网站超市怀化seo推广
  • 如何网站客户案例怎么学网站开发
  • 哪个网站公司做的现在流行的网站制作工具
  • 鲜花网站前台数据库建设娃哈哈网络推广方案