实战篇:带着大家用鸿蒙HarmonyOS做项目(三:初版项目完成,总结,对鸿蒙进行一些吐槽)

前言

在前面,我们已经完成了Home、Mine、Calendar三个模块了

现在我们继续往下Data模块Add模块

这次我们要完成整个项目啦~

大家加油!

Data

老样子,新建一个Data.ets,然后再TabBar中引用

DataPane模块

我现在想搞一个冰箱容量的模块

那么我可以用一下自带的DataPanel组件

但是这个组件比较蛋疼,只能说还不完善吧,功能较少

效果

但是我现在并不知道每个模块都是什么东西,光有个占比,所以我自己加了一个文本,并加上了一个背景色,用来区分

这是目前的效果,需要说的是,颜色好像也不能更改,我还是自己吸的色,哈哈哈哈有点搞笑在里面

东西太多了,我给抽出去了,大家到这里应该懂我的意思了

目前除了这个Arc自带的这个组件,我还找到了一个openharmony第三方的库,叫做ohos-MPChart

它有点类似于echarts,可以完成一些更多的可视化效果,但是文档太难受了

是全是代码的形式,看惯了组件库的文档的我,表示很难受,而且在使用的时候API还出现了一些问题,所以先搁置了,待我研究一下这里打算单门再出文章

但是由此我看到目前已经有一些第三方库,于是我想去自建库,也就是文档的这里

但是我第一步就卡住了

这个库的模板在哪啊?目前也没有找到,求教。。

并不是想造轮子,是根本没有啥轮子,要不也得封装,不如做个库了

但是还不知道咋建立,所以目前只能单建项目,把封装的组件记录一下了

这里有懂建库的可以评论一下

ohpm踩坑

当我最开始用ohpm的时候是失败的,如果有人遇到了可以看我下面的解决方案

如果你想通过ohpm来下载依赖发现失败的时候

这个时候你先检查一下,你的配置是不是出问题了

如果不会配置的话

官网文档这里教了,挺全面的:developer.harmonyos.com/cn/docs/doc...

正常完事是这样的

如果你在引入库出现这个报错的话

那么你可以在setting中将下面这项关掉

List

好的,我们继续

我现在想里面的内容更加细分,比如,我想知道我现在的食品里面都有什么,于是我打算再搞一个List

老朋友了,我们先做成目前的效果

好的,我们现在加点内容

这是我想要的效果,于是我把这一块封装成一个DataItem组件

然后里面的值需要父组件进行传递

于是我新建了一个ItemData存放数据

这里懒得起名字了,所以草率了点

然后在Data.ets中进行遍历

效果

然后这里我希望我的这个List是横向的

那么我们需要改变排列方向

所以现在可以得到效果

Add

最后一个模块了,现在我们别的地方都完成了,就差一个加入商品

首先新建Add.ets然后再TabBar中进行替换

我的构想是这样的,理论上可以扫描二维码或者条形码,快速加入商品,但是此部分内容较为复杂,可以通过OpenHarmony的三方库 @ohos/zxing,它是一个解析/生成一维码/二维码的库

地址:OpenHarmony-TPC/zxing (gitee.com)

这里仅仅提供样式和布局,后面有时间了我再加上功能

除了扫码,我们还可以通过输入框输入信息来添加商品

那咱们开始吧~

扫描条形码的部分我封装成一个Scan组件

然后我用Stack布局简单书写一下我想要的样式

看看效果

好的,开始剩余的部分,剩余的部分类似于一个表单

所以这里简单封装一下,我叫做ProductForm

我们简单写一下,目前是这样的

发现有大量的重复样式,所以这里我们可以用样式装饰器@Extend

首先,把Text的封装了

然后是输入框

然后有两个输入框是输入日期的,这里我们不想手写输入,而是需要通过日期选择器进行输入

那我们第一时间应该想到DatePickerDialog

那我们就去写一下

看看效果

好的,效果没问题,现在我们这里按照之前Mine的思路进行父子间的传值即可,我们改进一下ProductForm

这样就可以获取到值了

我们看看效果吧

这里的时间大家可以通过Date获取当前的日期,比较简单,我就给大家提供个思路

最后我们再加一个按钮即可

效果

结尾

项目的初版算是完成了,希望大家不要去深挖一些业务逻辑上的漏洞,因为这个项目主要是为了帮助大家学习,复习一些ArcTS的语法,以及一些组件的使用

当然,目前我自己也是很不满意的,所以我在下一节会对整个项目进行优化和改造(但是整体页面效果不会变太多,大多是细节和逻辑上的优化)

整体大概是四节,跟我预料的差不多,写这种实战教学真的耗时耗精力,希望大家多支持

希望这套专栏对大家有所帮助吧~那么这一切都是值得的

有什么问题或者交流的话可以加V:Js_perplexed09

感谢大家的支持~

后面出什么内容大家可以建议一下

吐槽

ArcUI的确处在一个较为初步的阶段,组件功能不够完善,有一些组件还没有,很多都需要自己封装,不知道Arc组件库啥时候出

IDE有bug,有时候会生成js文件

官方文档待完善,有的地方书写的不对(不知道是不是没更新)

不知道大家有没有同样的感受:文档找东西费劲(我感觉是设计问题),我现在多少算是熟读文档了,但是有的时候我想找点找过的东西,这个费劲

第三方库太少了,自己想封装还不知道为啥库的模板没有了

一些小的坑属于不记得了,可能也算是无伤大雅吧。。

另外,能不能页面调试方便一点,类似于微信开发者工具那样也行(虽然体验感也挺差的)

但是最后,我想说的是,我是期待国内的技术蓬勃发展的,我也很期待鸿蒙能够很好地发展,在ArcTS普及的初期,难免问题会多一些,但是希望官方能尽快地完善

期间华为打过几次电话寻求开发者反馈,我反馈了不少,但是并不知道结果如何

希望能做的更好吧~

相关推荐
Mr_Xuhhh19 分钟前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
永乐春秋1 小时前
WEB攻防-通用漏洞&文件上传&js验证&mime&user.ini&语言特性
前端
鸽鸽程序猿1 小时前
【前端】CSS
前端·css
ggdpzhk1 小时前
VUE:基于MVVN的前端js框架
前端·javascript·vue.js
学不会•3 小时前
css数据不固定情况下,循环加不同背景颜色
前端·javascript·html
活宝小娜6 小时前
vue不刷新浏览器更新页面的方法
前端·javascript·vue.js
程序视点6 小时前
【Vue3新工具】Pinia.js:提升开发效率,更轻量、更高效的状态管理方案!
前端·javascript·vue.js·typescript·vue·ecmascript
coldriversnow6 小时前
在Vue中,vue document.onkeydown 无效
前端·javascript·vue.js
我开心就好o6 小时前
uniapp点左上角返回键, 重复来回跳转的问题 解决方案
前端·javascript·uni-app
Random_index6 小时前
#Uniapp篇:支持纯血鸿蒙&发布&适配&UIUI
uni-app·harmonyos