HarmonyOS App开发——购物商城应用App开发
购物商城应用App开发
1 购物商场应用App概述
本文我们最终会构建一款简易的购物商城应用APP,首先介绍购物商城应用功能。
1.1 购物应用功能
购物应用包含两级页面,分别是主页(商品浏览页签、购物车页签、我的页签)和商品详情页面。虽然只有两个页面,但展示了丰富的HarmonyOS ArkUI框架组件的应用,这些组件的功能和效果图。包括自定义弹窗容器组件(Dialog)、列表组件(List)、滑动容器组件(Swiper)、页签组件(Tabs)、按钮组件(Button)、图片组件(Image)、进度条组件(Progress)、格栅组件(Grid)、单选框组件(Toggle)、可滚动容器组件(Scroll)、弹性布局组件(Flex)、水平布局组件(Row)、垂直布局组件(Column)和路由容器组件(Navigator)
程序中所用到的资源文件都放置到resources/rawfile目录下。
1.2 购物应用效果展示
如图所示是商品浏览页签的效果图。

如图所示是购物车页签的效果图。

如图所示是我的页签的效果图。

如图所示是商品详情页面的效果图。

2 实战:实现商品列表页签
主界面商品列表页签主要由下面3部分组成:
(1)顶部的Tabs组件。
(2)中间TabComlem组件内包含List组件。其中List组件的每个项是一个水平布局,该水平布局又是由一个垂直布局和一个Image组件组成;垂直布局又是由3个TeXt组件组成。
(3)底部的页签导航。
2.1 应用首页
pages/Index.ets文件作为应用的首页,起到组装其他子页面的作用。代码如下:
|
import { GoodsData } from '../model/GoodsData' |
上述代码中,可用看到,应用首页由以下3部分组成:
(1)商品列表页。
(2)购物车列表页,
(3)"我的"页。
2.2 创建模型
新建一个与pages文件夹同级的model文件夹,并在model目录下新建ArsData.ets、GoodsData.ets、Menu.cts和GoodsDataModels.ets 文件,其中ArsData.ets、GoodsData.ets、Menu.ets是数据实体类,GoodsDataModels.ets是存放这3种实体数据集合,并定义了获取各种数据集合的方法。数据实体包含实体的属性和构造方法,可以通过newArsData()来获取ArsData对象。
ArsData.ets内容如下:
|
export class ArsData { |
GoodsData.ets内容如下:
|
export class GoodsData { |
Menu.ets内容如下:
|
export class Menu { |
GoodsDataModels.ets内容如下:
|
import { GoodsData } from './GoodsData' |
2.3 创建组件
在Index.ets文件中创建商品列表页签相关的组件,添加GoodsHome代码如下:
|
@Component |
在GoodsHome中使用Tabs组件,在Tabs组件中设置4个TabContent,给每个TabContent设置tabBar属性,并设置TabContent容器中的内容GoodsList组件,GoodsList组件代码如下:
|
@Component |
在GoodsList组件中遍历商品数据集合,Listltem组件中设置组件内容,并使用Navigator组件给每个Item设置顶级跳转路由(会跳转到商品详情页),GoodsListltem组件代码如下:
|
@Component |
从入口组件的代码中可以看出,我们定义了一个全局变量currentPage,并且使用@provide修饰,在其子组件(HuomBottom)中使用@Consume修饰。当子组件currentPage发生变化时,父组件currentPage也会发生变化,重新加载页面,显示不同的页签。在入口组件中,通过initializeOnStartup获取商品列表数据(goodsItems)并传入GoodsHome组件中,HomeBottom组件的代码如下:
|
@Component |
底部组件是由一个横向的图片列表组成,iconPatb是底部初始状态下的3张图片路径数组。遍历iconPath数组,使用Image组件设置图片路径并添加到List中,给每个Image组件设置单击事件,单击更换底部3张图片。在HomcBottom中,iconPath使用的是@State修饰,当iconPath数组内容变化时,页面组件有使用到的地方都会随之发生变化。
3 实战:实现购物车页签
主界面购物车页签主要由下面3部分组成:
(1)顶部的Text组件。
(2)中间的List组件,其中List组件的item是一个水平的布局内包含一个togle组件,一个Image组件和一个垂直布局,其item中的垂直布局是由2个Text组件组成。
(3)底部一个水平布局包含两个Text组件。
构建一个购物车页签,给商品列表的每个商品设置一个单选框,可以选中与取消选中,底部“合计”值也会随之增加或减少,单击“结算”时会触发弹窗。下面我们来完成购物车页签。
3.1 创建一个页面
在pages目录下新建一个Page命名为"ShoppingCart"。在ShoppingCart.ets文件中添加入口组件,并导入需要使用到的数据实体类、方法和组件。ShoppingCart组件代码如下:
|
import { GoodsData } from '../model/GoodsData' |
3.2 创建组件
新建ShopCarList组件用于存放购物车商品列表,ShopCarList组件代码如下:
|
@Component |
ShopCartListltem组件代码如下:
|
@Component |
在ShopCartListItem中使用Toggle的单选框类型来实现每个item的选择和取消选择,在Toggle的onChange事件中来改变totaIPrice的数值。
新建ShopCartBottom组件,ShopCartBottom组件的代码如下:
|
@Component |
当单击“结算”按钮时,将会有弹窗提醒。
4 实战:实现“我的”页签
“我的”页签主要由下面4部分组成:
(1)顶部的水平布局。
(2)顶部下面的文本加数字的水平List。
(3)My Transaction模块,图片加文本的水平List。
(4)More模块,图片加文本的Grid。
构建主页“我的”页签,主要可以划分为下面几步。
4.1 创建一个页面
在pages目录下新建一个Page命名为"MyPage"。
在MyPage.ets文件中添加入口组件,MyInfo组件内容如下:
|
import { getMenu, getTrans, getMore } from '../model/GoodsDataModels' |
4.2 创建组件
入口组件中还包含TopList、MyIransList和MoreGrid 3个子组件。代码如下:
|
@Component @Component @Component |
在MyTransList和MoreGrid组件中都包含子组件Dataltem,为避免代码的重复,可以把多次要用到的结构体组件化,这里的结构体就是图片加上文本的上下结构体,Dataltem组件内容如下:
|
@Component |
5 实战:商品详情页面
商品详情页面主要由以下5部分组成:
(1)顶部的返回栏。
(2)Swiper组件.
(3)中间多个Text组件组成的布局。
(4)参数列表.
(5)底部的Buy
将上面每一部分都封装成一个组件,然后再放到入口组件内,当单击顶部返回图标时返回到主页面的商品列表页签,单击底部“购买”时,会触发进度条弹窗。
5.1 创建一个页面
在pages目录下新建一个Page,命名为“ShoppingDetail”。在ShoppingDetail.ets文件中创建入口组件,组件内容如下:
|
import router from '@system.router'; |
5.2 创建组件
顶部DetailTop组件代码如下:
|
@Component |
SwiperTop组件代码如下:
|
@Component |
DetailText组件代码如下:
|
@Component |
DetailArsList组件代码如下:
|
@Component |
ArsListltem组件代码如下:
|
@Component |
DetailBottom组件代码如下:
|
@Component |
DialogExample自定义弹窗组件代码如下:
|
@CustomDialog |
5.3 设置路由
为了能实现应用首页和商品详情页的切换,还需要在resources/base/profile/main_pages.json文件中增加路由配置。
|
{ |
6 小结
本文介绍了购物应用的完整开发过程,实现了包括商品列表页面、购物车页面、"我的"页面、详情页面等4块核心功能。通过文章的学习,让开发者们能够进一步掌握HarmonyOS的开发技能。
更多推荐

所有评论(0)