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

做电影网站需要的服务器配置wordpress登录没链接

做电影网站需要的服务器配置,wordpress登录没链接,赤峰注册公司流程和费用,企业管理培训是做什么的本文系统梳理了鸿蒙(HarmonyOS)ArkUI中组件间通信相关的装饰器及状态组件的使用方法,重点介绍V2新特性,适合开发者查阅与实践。 概述 鸿蒙系统(HarmonyOS)ArkUI提供了丰富的装饰器和状态组件,用…

本文系统梳理了鸿蒙(HarmonyOS)ArkUI中组件间通信相关的装饰器及状态组件的使用方法,重点介绍V2新特性,适合开发者查阅与实践。

概述

鸿蒙系统(HarmonyOS)ArkUI提供了丰富的装饰器和状态组件,用于简化组件之间的数据通信和状态管理。这些装饰器和组件在V1版本的基础上继续优化,并在V2版本中引入了新的特性,使得开发者能够更高效地构建复杂的应用程序。本文将详细介绍这些装饰器和状态组件,帮助开发者更好地理解和应用它们。


1. @ComponentV2 装饰器

  • 用于自定义组件,启用V2状态管理能力。
  • 仅能与V2系列装饰器(如@Local、@Param、@Once、@Event、@Provider、@Consumer等)配合使用。
  • 不能与@Component混用。

示例:

@ComponentV2
struct MyComponent {build() {// ...}
}

2. @Local 装饰器(组件内部状态)

  • 仅能在@ComponentV2中使用。
  • 表示组件内部状态,变量必须本地初始化,不能被外部初始化。
  • 支持number、string、boolean、Object、class、Array、Set、Map、Date等类型。
  • 变量变化会自动刷新绑定的UI。
  • 对象属性的深度观测需配合@ObservedV2和@Trace。

示例:

@ComponentV2
struct Example {@Local count: number = 0;@Local message: string = "Hello";build() {Column() {Text(`${this.count}`)Button("change Local").onClick(() => {this.count++;})}}
}

3. @State 装饰器(V1组件内状态)

  • 仅能在@Component中使用。
  • 变量可本地初始化,也可由父组件初始化。
  • 变量变化会自动刷新绑定的UI。
  • 支持number、string、boolean、Object、class、Array、Date、Map、Set等类型。
  • 嵌套对象属性变化观测有限。

示例:

@Component
struct Example {@State count: number = 0;build() {Button(`click times: ${this.count}`).onClick(() => {this.count += 1;})}
}

4. @Provider/@Consumer 装饰器(V2跨组件层级双向同步)

  • 仅能在@ComponentV2中使用。
  • @Provider为数据提供方,@Consumer为数据消费方,通过aliasName(或属性名)建立绑定。
  • 支持number、string、boolean、class、Array、Date、Map、Set等类型。
  • 建立后可实现父子组件间的双向同步。

示例:

@Entry
@ComponentV2
struct Parent {@Provider() str: string = 'hello';build() {Column() {Button(this.str).onClick(() => { this.str += '0'; })Child()}}
}
@ComponentV2
struct Child {@Consumer() str: string; // 注意:@Consumer变量不需要初始化,因为其值会从Provider处获取build() {Button(this.str).onClick(() => { this.str += '0'; })}
}

5. @ObservedV2/@Trace 装饰器(V2类属性深度观测)

  • @ObservedV2装饰class,@Trace装饰class属性。
  • 需配合使用,支持嵌套对象属性的深度观测。
  • 仅V2支持,适合复杂数据结构的UI联动。

示例:

@ObservedV2
class Info {@Trace name: string;@Trace region: string;constructor(name: string, region: string) {this.name = name;this.region = region;}
}
@ComponentV2
struct Example {@Local info: Info = new Info('Tom', 'North');build() {Text(this.info.name)Button('change').onClick(() => { this.info.name = 'Jack'; })}
}

6. @Event 装饰器(V2组件输出)

  • 仅能在@ComponentV2中使用。
  • 用于装饰回调方法,实现子组件向父组件传递事件。
  • 常与@Param配合,实现数据的双向同步。

示例:

@ComponentV2
struct Child {@Param index: number = 0;@Event changeIndex: (val: number) => void;build() {Button('change').onClick(() => {this.changeIndex(20);})}
}
@Entry
@ComponentV2
struct Parent {@Local index: number = 0;build() {Child({index: this.index,changeIndex: (val: number) => { this.index = val; }})}
}

7. @Monitor 装饰器(V2状态变量深度监听)

  • 仅能在@ComponentV2或@ObservedV2装饰的类中使用。
  • 可监听多个属性的变化,支持深度监听。
  • 回调参数可获取变化前后的值。

示例:

@ComponentV2
struct Example {@Local message: string = "Hello";@Monitor("message")onMessageChange(monitor: IMonitor) {console.log(`message changed from ${monitor.prev} to ${monitor.cur}`);}
}

8. @Watch 装饰器(V1状态变量监听)

  • 仅能在@Component中使用。
  • 用于监听@State、@Prop、@Link等装饰的变量变化。
  • 回调函数名作为参数。

示例:

@Component
struct Example {@State count: number = 0;@Watch('count')onCountChange(count: number, prevCount: number) {console.log(`count changed from ${prevCount} to ${count}`);}
}

总结

鸿蒙系统ArkUI通过引入各种装饰器和状态组件,极大地方便了开发者进行组件间的数据通信和状态管理。本文详细介绍了这些装饰器和组件的使用方法,特别是V2版本的新特性。开发者可以根据实际需求选择合适的装饰器和状态组件来构建高效、可维护的应用程序。


参考

  • ArkUI官方文档
  • 项目内相关文档

作者

csdn猫哥,blog.csdn.net/yyz_1987。如需转载,请注明出处。


文章转载自:

http://uSALM5B0.tdwjj.cn
http://ACtIx91v.tdwjj.cn
http://afjfjGLm.tdwjj.cn
http://Kht4CDIv.tdwjj.cn
http://NwlPhfK3.tdwjj.cn
http://emDNQhcX.tdwjj.cn
http://JYaoLPcp.tdwjj.cn
http://4ysqu1Fp.tdwjj.cn
http://yPZzxqlP.tdwjj.cn
http://RzYrRmwR.tdwjj.cn
http://cMGAJqaO.tdwjj.cn
http://HDblbqkM.tdwjj.cn
http://KT8RaGok.tdwjj.cn
http://ihzSRmFv.tdwjj.cn
http://kHMrr3WB.tdwjj.cn
http://11exyjIh.tdwjj.cn
http://R7O7Mj7o.tdwjj.cn
http://xdKT3FtA.tdwjj.cn
http://bLANiK1S.tdwjj.cn
http://l0sFcGHL.tdwjj.cn
http://WH8NxXRn.tdwjj.cn
http://gB3XHWTU.tdwjj.cn
http://YQmit5nN.tdwjj.cn
http://2sBEiDN9.tdwjj.cn
http://q6pMGwgl.tdwjj.cn
http://FfccSH3V.tdwjj.cn
http://mK4uYgXF.tdwjj.cn
http://AI32eAAj.tdwjj.cn
http://zNZtz2mi.tdwjj.cn
http://gqEnw7Hm.tdwjj.cn
http://www.dtcms.com/wzjs/701364.html

相关文章:

  • 黄图网站有哪些 推荐国内做钢铁的网站
  • 淘宝做图网站好蔡甸做网站
  • 网站备案组织机构代码泰安百度网站建设
  • 广东建设工程协会网站杭州百度推广开户
  • 福田网站建设效果凡科建站官网登
  • 建设部网站城建学院wordpress 登陆前台
  • 有没有在家做的兼职网站wordpress怎么给会员加上期限
  • 做网站ppt做网站编写
  • 网站空间绑定域名wordpress获取首页地址
  • 百度云做.net网站惠安网站建设费用
  • 网站后台文章列表里的每篇文章的文字全部乱码怎么办?网站文案技巧
  • 网站管理维护怎么做淘客cms网站建设教程
  • wordpress整站迁移出现403免费做二建题的网站
  • 淘宝网站首页是用什么软件做的免费cmsasp
  • 郑州网站推广优化能做视频的软件有哪些
  • 动漫网站策划书重庆建设网站哪里好
  • wordpress建英文站长春网站关键词排名
  • 公司网站不续费能打开网页吗外贸视频网站
  • 精美网站欣赏钱宝网站怎么做任务
  • 凡科建设网站步骤建设网站计划 ppt
  • 支付网站建设费上海工商局企业查询
  • 成都网站改版优化最新的网络项目代理
  • 深圳住房和建设管理局官方网站建筑工程网免费下载
  • 网站建设管理规定asp网站后台管理系统源码
  • 专做外贸的网站有哪些莆田百度推广开户
  • 网站建设方案服务器免费的网站申请
  • 网站后台这么做视频教程郴州网站建设
  • 可以自己做漫画的网站深圳搜索排名优化
  • 杭州网站建设公司湛江网站制作系统
  • 网站建设及推广好做吗免费设计标志