#夏日挑战赛# HarmonyOS - 自定义组件之Stepper步进器 原创 精华
作者:张凯
前言
刚刚开始接触HarmonyOS,对于FA项目的开发还比较陌生,简单熟悉了一下ArkUI文档,了解了一些基本语法和自定义组件部分的内容,自己尝试编写一个比较实用的组件Stepper 步进器,这个组件在项目中也算常见,这里尽量编写完善一点,努力适用大部分项目。
组件描述
组件支持:步长、最大值、最小值、标题、当前值、精度,功能支持:增大、减小、禁用,在增大减小的同时,按钮高亮。
效果展示
组件代码
step.hml
step.js
step.css
使用示例
1. 基本用法
2. 禁用
3. 指定精度
4. 指定步长
步长需要搭配对应的精度来使用
5. 指定最大值、最小值
6. 指定标题
指定标题后的禁用状态
属性
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
num | Number | true | 组件显示的部分,和父组件进行关联 |
disabled | Boolean | false | 是否禁用,禁用的样式根据有无title属性进行了区分显示 |
min | Number | false | 计算的最小值 |
max | Number | false | 计算的最大值 |
title | String | false | 是否显示标题 |
step | Number | false | 指定计算的步长,需要搭配precision使用 |
precision | Number | false | 指定数值的精度 |
事件
名称 | 说明 |
---|---|
change | 绑定值被改变时触发,通过e.detail来获取 |
问题盘点
- 动态绑定样式
- 0.00在页面中显示为0
这里尝试过num.toString()和num += ""转为字符串,无效,所以使用了toFixed()转为对应精度的字符串。
相关资料
编写这个组件,简单用到了组件间通信、动态类名等,在这里列出官方API,以便后续查看。
Props
自定义组件可以通过props声明属性,父组件通过设置属性向子组件传递参数,props支持类型包括:String,Number,Boolean,Array,Object。camelCase (驼峰命名法) 的 prop 名,在外部父组件传递参数时需要使用 kebab-case (短横线分隔命名) 形式,即当属性compProp在父组件引用时需要转换为comp-prop。给自定义组件添加props,通过父组件向下传递参数的示例如下:
说明:自定义属性命名时禁止以on、@、on:、grab: 等保留关键字为开头。
Props添加默认值
子组件可以通过固定值default设置默认值,当父组件没有设置该属性时,将使用其默认值。此情况下props属性必须为对象形式,不能用数组形式,示例如下:
comp.hml
本示例中加入了一个text组件显示标题,标题的内容是一个自定义属性,显示用户设置的标题内容,当用户没有设置时显示默认值title。在引用该组件时添加该属性的设置:
xxx.hml
组件通信
1. Props子组件向上传递参数
comp.hml
comp.js
2. 父组件通过e.detail获取参数:
xxx.hml
xxx.js
总结
在编写组件的过程中,发现一些js方法在FA中并不适用,需要反复的尝试来实现。这个组件还有一些需要完善的地方,希望大家有什么想法和意见可以提出来,后期可以进行补足。
更多原创内容请关注:中软国际 HarmonyOS 技术团队
入门到精通、技巧到案例,系统化分享HarmonyOS开发技术,欢迎投稿和订阅,让我们一起携手前行共建鸿蒙生态。
非常实用的项目,学习了
强👍
霞姐说,凯哥开大,就是强,6666
666学习学习学习666
学习了,我的云原生文章希望也能回个赞哦