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

做网站前台模型要做什么呢网站批量查询

做网站前台模型要做什么呢,网站批量查询,海报字体手绘转换器,番禺网站建设培训【HarmonyOS】HarmonyOS NEXT学习日记:六、渲染控制、样式&结构重用 渲染控制包含了条件渲染和循环渲染,所谓条件渲染,即更具状态不同,选择性的渲染不同的组件。 而循环渲染则是用于列表之内的、多个重复元素组成的结构中。 …

【HarmonyOS】HarmonyOS NEXT学习日记:六、渲染控制、样式&结构重用

渲染控制包含了条件渲染和循环渲染,所谓条件渲染,即更具状态不同,选择性的渲染不同的组件。
而循环渲染则是用于列表之内的、多个重复元素组成的结构中。

在声明式描述语句中开发者除了使用系统组件外,还可以使用渲染控制语句来辅助UI的构建,这些渲染控制语句包括控制组件是否显示的条件渲染语句,基于数组数据快速生成组件的循环渲染语句,针对大数据量场景的数据懒加载语句,针对混合模式开发的组件渲染语句。

渲染控制

条件渲染(if/else)

ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态,使用if、else和else if渲染对应状态下的UI内容。

@Entry
@Component
struct Index {@State counter: number = 0;build() {Column({space: 10}){Text(`counter=${this.counter}`)Row(){if(this.counter===0){Text(`counter===0,不展示归零按钮`);}else{Button('归零').onClick(()=>{this.counter=0})}}Row(){Button('counter++').onClick(()=>{this.counter++})}}}
}

上文我们实现了一个例子、初始化counter为0,提供一个counter++的按钮,点击时counter+1。
当counter=0时,显示文字:counter=0,不展示归零按钮
在这里插入图片描述
否则,展示一个归零按钮
在这里插入图片描述
点击归零按钮后,counter赋值0,页面回归初始状态
在这里插入图片描述
通过这个例子,就简单掌握了条件渲染的用法。

循环渲染

ForEach接口基于数组类型数据来进行循环渲染,需要与容器组件配合使用,且接口返回的组件应当是允许包含在ForEach父容器组件中的子组件。例如,ListItem组件要求ForEach的父容器组件必须为List组件。

用法:

// Index.ets
import text from '@ohos.graphics.text';interface newItem{title: string,subTitle: string,time: string
}@Entry
@Component
struct Index {@State news: newItem[] = [{title: '新闻标题1',subTitle: '这是一个副标题1',time: '2024/7/22'},{title: '新闻标题2',subTitle: '这是一个副标题2',time: '2024/7/22'},{title: '新闻标题3',subTitle: '这是一个副标题3',time: '2024/7/22'}];build() {Scroll(){Column({space:1}){ForEach(this.news,(item:newItem)=>{Column(){Row(){Text(item.title).fontSize(22)}.width('100%')Row(){Text(item.subTitle).fontColor('#aaa')}.width('100%')Row(){Text(item.time).fontColor('#aaa')}.width('100%').justifyContent(FlexAlign.End)}.padding(10).border({width: {bottom: 1},color: '#ccc',style: BorderStyle.Dashed,}).backgroundColor('rgba(25, 159, 126, 0.1)')},(item:newItem,index:number)=>index+'')}.width('100%').backgroundColor('#eee')}}
}

在这里插入图片描述

样式&结构重用

@Extend:扩展组件(样式、事件)

继承一个组件并且为其添加扩展方法,通过自定义扩展方法就可以添加可复用的样式和事件。

// Index.ets
import text from '@ohos.graphics.text';
@Extend(Text)
function textExtend(backgroundColor: ResourceColor,text: string){.textAlign(TextAlign.Center).backgroundColor(backgroundColor).fontColor(Color.Red).fontSize(22).width('100%').onClick(() => {AlertDialog.show({message: text})})
}
@Entry
@Component
struct Index {build() {Column(){Text('1111').textExtend(Color.Blue,'1111')Text('2222').textExtend(Color.Green,'2222')}}
}

可以看到我们布局时的代码简练了很多
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/56c54cc368704ec7b19409557a6320da.png在这里插入图片描述

在这里插入图片描述
!!!会影响整个页面的该组件,需要注意!!!

@Styles: 抽取通用属性、事件

// Index.ets
//'CommonAttribute' 类型
@Styles function textStyle() {.backgroundColor('#eee').width('100%').onClick(() => {AlertDialog.show({message: '点击触发'})})
}
@Entry
@Component
struct Index {build() {Column(){Text('1111').textStyle().textAlign(TextAlign.Center)Text('2222').textStyle().textAlign(TextAlign.Center)}}
}

在这里插入图片描述
在这里插入图片描述
特点:

  • 只能设置CommonAttribute类型的属性,也就是通用属性
    像是,TextFont这种只能给Text组件设置的属性无法通过这种方式提取。
  • 无法接收参数
  • 有组件作用域和全局作用域

@Builder:自定义构建函数(结构、样式、事件)

通过@Builder我们可以自定义构建函数,将需要复用的结构、样式、事件通通封装起来。

// Index.ets
import text from '@ohos.graphics.text'@Builder function TextItem(text: string){Text(text).fontSize(18).fontColor(Color.Red).backgroundColor('#ccc').lineHeight(30).width('100%').textAlign(TextAlign.Center).onClick(()=>{AlertDialog.show({message: text})})
}
@Entry
@Component
struct Index {build() {Column(){TextItem('111')TextItem('222')TextItem('333')}}
}

在这里插入图片描述
点击后可以触发事件
在这里插入图片描述

http://www.mnyf.cn/news/44000.html

相关文章:

  • 龙岗平湖网站开发网站买卖交易平台
  • 怎么做军事小视频网站最好的免费信息发布平台
  • 没有独立网站淘宝客推广怎么做seo职位
  • 网站开发外包不给ftp首页图片点击率如何提高
  • 做一般的公司门户网站投资额优化器
  • 网站建设费用明细报告淘宝美工培训
  • 北京朝阳区租房价格百度seo排名规则
  • 网站综合排名信息查询全媒体运营师培训
  • 网站网站制作服务企业网站建设
  • 无锡网站制作楚天软件seo新人怎么发外链
  • 做网站要身份证吗代写文章接单平台
  • 做网站哪个平台搜狗收录
  • 大学生做那个视频网站营销型网站的特点
  • 邯郸学做网站学校太原seo代理商
  • 静态网站建设教程免费的h5制作网站
  • 2024最新一轮病毒症状长沙seo管理
  • 四平网站设计公司提高百度快速排名
  • 北京模板建站哪家好十大教育培训机构排名
  • 四川网站建设多少钱市场推广方案怎么写
  • 网站先做前端还是后端站内搜索引擎
  • 太原0元网站建设网站建设全包
  • 毕节市建设网站水果店推广营销方案
  • wordpress国内博客主题标题优化seo
  • 顶级域名的网站竞价推广代运营
  • 做任务赚钱的网站排行微信信息流广告投放
  • 有哪些网站做外贸的广州白云区新闻头条最新消息今天
  • 为什么要网站备案最新经济新闻
  • 西安网站公司排名网站流量统计工具
  • 免费网站建设itcask百度app下载官方免费下载最新版
  • 英文网站模板改成中文事件营销的经典案例