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

提供小企业网站建设织梦网站默认密码忘记

提供小企业网站建设,织梦网站默认密码忘记,黑帽seo培训,seo短视频网页入口引流方法关于仓颉开发语言我们已经连续分享了很多天,相信大家对于仓颉开发语言已经有了一定的了解。今天我们继续进阶,分享一个仓颉开发语言中的自定义组件知识。 本文案例就以上一篇文章中的自定义tabbar为例,因为我们自己开发的tabbar一直放在inde…

关于仓颉开发语言我们已经连续分享了很多天,相信大家对于仓颉开发语言已经有了一定的了解。今天我们继续进阶,分享一个仓颉开发语言中的自定义组件知识。

本文案例就以上一篇文章中的自定义tabbar为例,因为我们自己开发的tabbar一直放在index.cj文件中总是不太好的,还是要把它拿出来封装一下。

为了较大型项目的文件管理,我在cangjie文件夹下创建了components文件夹,然后在这里创建组件文件,我创建的是yltabbar.cj.

创建文件之后,可以看到依然是初始化了一行代码,我们还是把四大引用拿过来,然后添加build方法,注意自定义组件就不需要@Entry来修饰了,只用@Component:


internal import ohos.base.*
internal import ohos.component.*
internal import ohos.state_manage.*
import ohos.state_macro_manage.*
@Component
public class yltababar {func build() {}
}

然后把tabbar的内容复制到build方法下。

现在如果我们想要给自定义组件传递一些参数,比如tabbar的元素列表,你就可以这样写:

var tabList: Array<TabItem>

这是一个父子单向传递的参数,只能由父组件传递给自组件。我们还有一个参数currenttabIndex,用来记录当前选择的元素序号,这个参数在父组件中也需要用到,这时候就需要使用@Link修饰符:

@Link var currenttabIndex:Int64

现在就可以在页面中使用组件并传递参数了:

yltababar(tabList:this.tabList,currenttabIndex:this.currenttabIndex)

最后跟大家分享封装组件的完整代码:

package ohos_app_cangjie_entry.components
internal import ohos.base.*
internal import ohos.component.*
internal import ohos.state_manage.*
import ohos.state_macro_manage.*
import cj_res_entry.app
import ohos_app_cangjie_entry.model.TabItem
import std.os.posix.link
import std.console.Console
@Component
public class yltababar {var tabList: Array<TabItem>@Link var currenttabIndex:Int64var controller: TabsController = TabsController()func build() {Row {ForEach(this.tabList, itemGeneratorFunc: {item: TabItem, index: Int64 =>Column {if(this.currenttabIndex == index){Image(item.selectIcon).width(28).height(28)Text(item.title).fontSize(15).fontColor(0xd84642).margin(top: 3)}else {Image(item.icon).width(28).height(28)Text(item.title).fontSize(15).fontColor(Color.GRAY).margin(top: 3)}}.onClick({evet => this.currenttabIndex = index;this.controller.changeIndex(Int32(this.currenttabIndex))})})}.width(100.percent).height(60).alignItems(VerticalAlign.Center).justifyContent(FlexAlign.SpaceAround)}
}

 #HarmonyOS语言##仓颉##购物# 

http://www.dtcms.com/a/609320.html

相关文章:

  • 基于XTOM蓝光扫描的复杂中小尺寸零件3D形貌重建与全尺寸误差分析
  • Qt 自定义菜单栏 / 工具栏按钮 QToolButton + InstantPopup 详细解析
  • 2025年AI生成PPT工具深度评测:技术对比与实战分析
  • 智慧园区:科技赋能下的安全便捷生活新范式
  • 华为WATCH 5:连接心与心,让生活更美好
  • 内容管理系统解决方案架构及实施
  • 建设银行网站的服务管理商业机构的网站是什么
  • Python与大数据:使用PySpark处理海量数据
  • Django 缓存详解与应用方法
  • SDN架构详解
  • Spring Boot缓存实战:@Cacheable注解详解与性能优化
  • LeetCode热题100--17. 电话号码的字母组合
  • C++初阶(07):STL简介
  • 中国哪些网站做软装建设彩票网站合法吗
  • 百度网站评分椒江做网站
  • yolov8目标检测训练在rk3588上部署
  • 学术数据可视化:高效图表工具助力科研数据精准呈现
  • 焦作高端网站建设宁波seo外包服务平台
  • Apple 官方提供 Xcode 周边实用工具集,包含CarPlay 模拟器,网速限制等 Additional Tools for Xcode 26.1,
  • 《隐藏(Hide)》
  • 基于Mask R-CNN的汽车防夹手检测与识别系统
  • 从正向困境到反向破局:详解地下城游戏的动态规划解法
  • 常州新北区网站建设东莞搜索排名提升
  • 专题:2025构建全自动驾驶汽车生态系统:中国智能驾驶行业全景研究报告|附80+份报告PDF、数据仪表盘汇总下载
  • uni-app 将 base64 图片编码转为 Blob 本地文件路径
  • Ethernaut Level 16: Preservation - Delegatecall与存储布局操纵
  • 1040视频app深圳网站建设seo推广优化
  • MySQL 中的 MVCC
  • Answer 开源平台搭建:cpolar 内网穿透服务助力全球用户社区构建
  • 从 Spring @Retryable 到 Kafka 原生重试:消息重试方案的演进与最佳实践