基础入门

组件可以把一段代码封装起来,目的是提高这一段代码的复用率,并且也可以减少开发人员多次编写相同的代码。一旦组件定义好了之后,在页面中只需要通过<element /> 标签引入进来就可以了。

快速认识 Vue 组件

在项目中创建一个用于存放组件的文件夹 components。目前项目文件夹的结构是这样的:

组件与页面一样都需要 hml、js、css 三个文件:

<div class="container">
<text>{{ msg }}</text>
</div>
export default {
data: {
msg: 'This is a component.'
}
}

<element />标签包含两个属性:name 和 src:

  1. name 属性指自定义组件名称(非必填),组件名称对大小写不敏感,默认使用小写。若没有设置 name 属性,则默认使用 hml 文件名作为组件名。
  2. src 属性指自定义组件 hml 文件路径(必填)。

在页面中引入组件:

<element name="DemoComp" src="../../../components/demo/index.hml"></element>

<div class="container">
<!-- DemoComp 组件 -->
<DemoComp></DemoComp>
<text>
This is a page.
</text>
</div>

!注意:组件名最好使用大驼峰命名法,主要是用于区别开基础组件名,也是为了提高可阅读性。

Props

组件可以接收一些参数,跟函数一样有参数,这样可以进行一些组件的配置,从而达到不一样的效果。

组件接收参数的接口就是 Props,实际上它是一个对象,可以有许多类型的属性:String,Number,Boolean,Array,Object,Function。

!注意:Props 的属性采用驼峰命名法,在 HML 文件中,对应的属性名必须使用短横线分隔命名法。

定义两个 Props 属性:imgSrc 和 size。

export default {
props: {
imgSrc: {
// imgSrc 属性的默认值,不传递参数时使用默认值。
default: 'https://pic.cnblogs.com/avatar/2271881/20210617130249.png'
},
size: {
default: 50
}
}
}
<div class="container" style="height: {{ size }} px; width: {{ size }} px;">
<image class="img" src="{{ imgSrc }}"></image>
</div>

在 HML 中引入组件:

<element name="Avatar" src="../../../components/avatar/index.hml"></element>

<div class="container">
<Avatar></Avatar>
<text>
This is a page.
</text>
</div>

页面成功显示了刚刚自定义的头像组件。现在,我们修改组件的 imgSrc 和 size 属性:

<Avatar size="150" img-src="https://img1.baidu.com/it/u=1723224959,3151955398&fm=26&fmt=auto"></Avatar>

ArkUI 自定义组件的更多相关文章

  1. Android开发之自定义组件和接口回调

    说到自定义控件不得不提的就是接口回调,在Android开发中接口回调用的还是蛮多的.在这篇博客开始的时候呢,我想聊一下iOS的自定义控件.在iOS中自定义控件的思路是继承自UIView, 在UIVie ...

  2. Android自定义组件

    [参考的原文地址] http://blog.csdn.net/l1028386804/article/details/47101387效果图: 实现方式: 一:自定义一个含有EditText和Butt ...

  3. 自己写的几个android自定义组件

    http://www.see-source.com/androidwidget/list.html 多多指点,尤其是自定义组件的适配问题,希望能有更好的方法

  4. PhoneGap: Android 自定义组件

    Hello Core Demo Plugin Development(组件部署): http://docs.phonegap.com/en/2.0.0/guide_plugin-development ...

  5. android开发之自定义组件

    android开发之自定义组件 一:自定义组件: 我认为,自定义组件就是android给我们提供的的一个空白的可以编辑的图片,它帮助我们实现的我们想要的界面,也就是通过自定义组件我们可以把我们要登入的 ...

  6. HTML5 UI框架Kendo UI Web教程:创建自定义组件(三)

    Kendo UI Web包 含数百个创建HTML5 web app的必备元素,包括UI组件.数据源.验证.一个MVVM框架.主题.模板等.在前面的2篇文章<HTML5 Web app开发工具Ke ...

  7. HTML5 UI框架Kendo UI Web中如何创建自定义组件(二)

    在前面的文章<HTML5 UI框架Kendo UI Web自定义组件(一)>中,对在Kendo UI Web中如何创建自定义组件作出了一些基础讲解,下面将继续前面的内容. 使用一个数据源 ...

  8. HTML5 UI框架Kendo UI Web自定义组件(一)

    Kendo UI Web包含数百个创建HTML5 web app的必备元素,包括UI组件.数据源.验证.一个MVVM框架.主题.模板等.在Kendo UI Web中如何创建自定义组件呢,在下面的文章中 ...

  9. 自定义组件之MoreListView

    前言 本文针对自定义组件进行一些分析.还是那句老话“授之于鱼不如授之以渔”.今天要讲的是一个自定义的可以分页的ListView. 网上都讲了些ListView分页的方法,那么为什么我在这里还需要自己写 ...

随机推荐

  1. MTK 虚拟 sensor bring up (pick up) sensor2.0

    pick up bring up sensor2.0 1.SCP侧的配置 (1) 放置驱动pickup.c (2) 添加底层驱动文件编译开关 (3) 加入编译文件 (4) 增加数据上报方式 (5)修改 ...

  2. MySql实例关于ifnull,count,case when,group by(转力扣简单)

    给定表 customer ,里面保存了所有客户信息和他们的推荐人. id   | name | referee_id|+------+------+-----------+|    1 | Will ...

  3. MASA Auth - SSO与Identity设计

    AAAA AAAA即认证.授权.审计.账号(Authentication.Authorization.Audit.Account).在安全领域我们绕不开的两个问题: 授权过程可靠:让第三方程序能够访问 ...

  4. 基于原生JS实现的Bean容器和AOP编程

    Bean是什么 我们知道Bean是Spring最基础的核心构件,大多数逻辑代码都通过Bean进行管理.NestJS基于TypeScript和依赖注入也实现了类似于Spring Bean的机制:服务提供 ...

  5. Jmeter(五十三) - 从入门到精通高级篇 - 懒人教你在Linux系统中安装Jmeter(详解教程)

    1.简介 我们绝大多数使用的都是Windows操作系统,因此在Windows系统上安装JMeter已经成了家常便饭,而且安装也相对简单,但是服务器为了安全.灵活小巧,特别是前几年的勒索病毒,现在绝大多 ...

  6. WPF第三方控件,只能输入数字型数据

    话不多说,根据最近项目需求,为了减少输入验证等相关代码量,需要此控件 先上效果图 默认样式是这样,自己可以根据需求修改外形,但我更喜欢它自带的简洁版 有人可能会问怎么实现的呢?其实很简单,我们设置它的 ...

  7. EasyExcel导出创建Excel下拉框

    话不多说,上才艺. 下面代码粘贴即用 /** * * 导出表格带下拉框 */ @GetMapping("exportBox") public void export(HttpSer ...

  8. BUCK 电路PSIM仿真模型搭建之二 (传递函数模块的使用)

    1. 利用S函数模块进行环路仿真 将PI 写成 截止频率的表示形式 Kp* (Ti*s+1)/Ti*s  ,  这里Kp = 20,  Ti = 0.0001  ,  写入仿真模型参数框 仿真结果: ...

  9. 我为 Netty 贡献源码 | 且看 Netty 如何应对 TCP 连接的正常关闭,异常关闭,半关闭场景

    欢迎关注公众号:bin的技术小屋,本文图片加载不出来的话可查看公众号原文 本系列Netty源码解析文章基于 4.1.56.Final版本 写在前面..... 本文是笔者肉眼盯 Bug 系列的第三弹,前 ...

  10. Oracle,SAP等暂停俄所有业务,国产化刻不容缓,无代码又该如何发力

    国产化刻不容缓 "如果不是自主可控的产品,我们这个行业可能有一天就瘫痪了."这句话最早是中国工程院院士倪先生预言的.然而,2022年的今天,由于俄乌战争,包括Oracle.SAP等 ...