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

东莞旅游网站建设域名申请通过了网站怎么做

东莞旅游网站建设,域名申请通过了网站怎么做,铜川市网站建设,英文wordpress转中文HarmonyOS4.0 系列——06、渲染之条件渲染、循环渲染以及懒加载渲染 if/else#xff1a;条件渲染 ArkTS 提供了渲染控制的能力。条件渲染可根据应用的不同状态#xff0c;使用 if、else 和 else if 渲染对应状态下的 UI 内容。 写法和 TS 的一样#xff0c;简单看一下即可…HarmonyOS4.0 系列——06、渲染之条件渲染、循环渲染以及懒加载渲染 if/else条件渲染 ArkTS 提供了渲染控制的能力。条件渲染可根据应用的不同状态使用 if、else 和 else if 渲染对应状态下的 UI 内容。 写法和 TS 的一样简单看一下即可 Entry Component struct IfForEach {State status: boolean truebuild() {Row() {Column() {Button(按钮).fontSize(30).width(150).height(50).onClick(() {this.status !this.status;})if (this.status) {if_son({ content: Southern Wind })} else {if_son({ content: 隐藏 })}}.width(100%)}.height(100%)} }Component struct if_son {content: stringbuild() {Text(this.content).fontSize(30)} } 效果 另外State 定义的变量归父组件所有。因此当子组件实例被删除时该变量不会被销毁。子组件通过Link装饰器引用状态。状态必须从子级移动到其父级或父级的父级以避免在条件内容或重复内容被销毁时丢失状态。 条件语句的嵌套对父组件的相关规则也没有影响。 例 Entry Component struct CompA {State toggle: boolean false;State toggleColor: boolean false;build() {Column() {Divider().margin(20)if (this.toggle) {Text(第一个状态为true).margin(10).backgroundColor(#aaffaa).fontSize(20)// 内部if语句if (this.toggleColor) {Text(两个状态都为true).margin(10).backgroundColor(#00aaaa).fontSize(15)} else {Text(第一个状态为true第二个状态为false).margin(10).backgroundColor(#aaaaff).fontSize(15)}} else {Text(第一个状态为false).fontSize(20).margin(10).backgroundColor(#ffaaaa)if (this.toggleColor) {Text(第一个状态为false第二个状态为true).margin(10).backgroundColor(#00aaaa).fontSize(15)} else {Text(两个状态都为false).margin(10).backgroundColor(#aaaaff).fontSize(15)}}Divider().margin(20)Button(第一个状态).margin(10).onClick(() {this.toggle !this.toggle;})Button(第二个状态).onClick(() {this.toggleColor !this.toggleColor;})}.width(100%)} }因为他默认两个状态都为 false 触发第一个状态为false和两个状态都为false文本 一共是四种效果 true trueture falsefalse falsefalse true 效果 ForEach 接口描述 ForEach(arr: any[],itemGenerator: (item: any, index?: number) void,keyGenerator?: (item: any, index?: number) string )第一个参数为数组允许设置为空数组空数组场景下将不会创建子组件。 第二个参数其实就是生成遍历出来的元素和索引值和 js 中 forEach 用法一致只是写法略微改动。 第三个参数为匿名函数。用于给数组中的每一个数据项生成唯一且固定的键值。键值生成器的功能是可选的但是为了使开发框架能够更好地识别数组更改提高性能建议提供。如将数组反向时如果没有提供键值生成器则 ForEach 中的所有节点都将重建。其实也就是 vue 中 for 循环的唯一键值 key等同于:keyitem.id或者:keyindex ForEach 必须在容器组件内使用。 使用场景 Entry Component struct ForEachPage {State message: string Hello WorldState flag: boolean |string falseState arr: Arrayobject [{id: 1,name: ArkTS,},{id: 2,name: HTML},{id: 3,name: CSS,},{id: 4,name: Javascript},{id: 5,name: PHP},{id: 6,name: WebGL},{id: 7,name: Node},{id: 8,name: Go}, {id: 9,name: Vue},{id: 10,name: react}, {id: 11,name: IOS}, {id: 12,name: Southern Wind},]build() {Row() {Column() {Text(this.message).fontSize(50)Button(取反).onClick((){this.flag!this.flag;console.log(${this.flag})})Divider().margin(10)List({ space: 30 }) {if (this.flag){ForEach(this.arr, (item, key) {ListItem() {Text(name:${item.name} --id:${item.id} -- key:${key}).fontSize(30).textAlign(TextAlign.Center).width(100%).lineHeight(45).backgroundColor(#bbb)}}, item item)}}.width(100%).height(80%)}.padding(20).width(100%)}} }效果 如果渲染长列表的话需要使用List组件不然数组数据多的情况下滚动会出现问题。 LazyForEach数据懒加载 LazyForEach 就是滚动到视口的位置是才会加载比如加载长列表图片刚开始只渲染视口的数据当往下拖动时才继续加载列表数据。 接口描述 LazyForEach(dataSource: IDataSource, // 需要进行数据迭代的数据源itemGenerator: (item: any) void, // 子组件生成函数keyGenerator?: (item: any) string // (可选) .键值生成函数 ): void官方的表格大家可以看一下具体参数名和描述 参数名 参数类型 必填 参数描述 dataSource IDataSource 是 LazyForEach数据源需要开发者实现相关接口。 itemGenerator (item: any) void 是 子组件生成函数为数组中的每一个数据项创建一个子组件。 说明 itemGenerator的函数体必须使用大括号{...}。itemGenerator每次迭代只能并且必须生成一个子组件。itemGenerator中可以使用if语句但是必须保证if语句每个分支都会创建一个相同类型的子组件。itemGenerator中不允许使用ForEach和LazyForEach语句。 keyGenerator (item: any) string 否 键值生成函数用于给数据源中的每一个数据项生成唯一且固定的键值。当数据项在数组中的位置更改时其键值不得更改当数组中的数据项被新项替换时被替换项的键值和新项的键值必须不同。键值生成器的功能是可选的但是为了使开发框架能够更好地识别数组更改提高性能建议提供。如将数组反向时如果没有提供键值生成器则LazyForEach中的所有节点都将重建。 说明 数据源中的每一个数据项生成的键值不能重复。 关于第一个参数IDataSource也有详细的说明 interface IDataSource {totalCount(): number; // 获得数据总数getData(index: number): any; // 获取索引值对应的数据registerDataChangeListener(listener: DataChangeListener): void; // 注册数据改变的监听器unregisterDataChangeListener(listener: DataChangeListener): void; // 注销数据改变的监听器 }关于事件DataChangeListener interface DataChangeListener {onDataReloaded(): void; // 重新加载数据时调用onDataAdded(index: number): void; // 添加数据时调用onDataMoved(from: number, to: number): void; // 数据移动起始位置与数据移动目标位置交换时调用onDataDeleted(index: number): void; // 删除数据时调用onDataChanged(index: number): void; // 改变数据时调用onDataAdd(index: number): void; // 添加数据时调用onDataMove(from: number, to: number): void; // 数据移动起始位置与数据移动目标位置交换时调用onDataDelete(index: number): void; // 删除数据时调用onDataChange(index: number): void; // 改变数据时调用 }使用限制 LazyForEach必须在容器组件内使用仅有List、Grid以及Swiper组件支持数据懒加载可配置cachedCount属性即只加载可视部分以及其前后少量数据用于缓冲其他组件仍然是一次性加载所有的数据LazyForEach在每次迭代中必须创建且只允许创建一个子组件。 -允许LazyForEach包含在if/else条件渲染语句中也允许LazyForEach中出现if/else条件渲染语句。 具体代码可以参考HarmonyOS——LazyForEach
http://www.pierceye.com/news/123795/

相关文章:

  • 建设部安全事故通报网站怎么更改网站的备案号
  • 重庆网站建设维护网络推广引流方法
  • 精品网站开发分销网站建站
  • 建设一个教程视频网站需要什么资质策划书案例范文
  • 郑州汉狮做网站的大公司海尔网站建设
  • 成都网站制作成都重庆网红景点排名
  • 广西南宁市网站制作公司制作图片的软件加字体
  • 新手搭建网站教程品牌推广费用预算
  • 广州网站设计网站制作竞价托管多少钱
  • 创建企业营销网站包括哪些内容软考高项彻底没用了
  • 企业品牌网站建设方案无锡网站设计多少钱
  • 轻量级网站开发在线旅游网站平台有哪些
  • 怎么用vs做网站推广优化网站排名
  • 免费推广网站软件常宁网站建设常宁网站建设
  • 冀州市网站建设html编辑器安卓版手机版软件
  • 广州专业网站改版方案网站建设要做ui和什么
  • 做网站显示上次登录时间代码h5素材库
  • 比较有名的网站建设公司谷歌网站优化
  • 企业网站改版计划书中国制造网是做什么的
  • 非主营电子商务企业网站有哪些企业网项目建设实践
  • 颍东网站建设手机vi设计公司
  • 林哥seo网络营销seo培训
  • 如何面试网站开发网站制作交易流程
  • 绍兴网站建设冯炳良互联网营销
  • 制作企业网站怎么报价可以做我女朋友吗网站
  • 广西玉林网站建设正规公司建手机网站
  • 乐清网站制作公司招聘做私人网站 违法
  • 珠海电脑自己建网站电子商务排名
  • 怎样做网站的背景图片安卓原生开发
  • 现代电子商务网站建设技术wordpress采用的mvc