第十八讲_HarmonyOS应用开发实战(实现电商首页)

news/2024/7/21 10:40:44 标签: harmonyos, ArkTS, javascript, typescript, 开发语言

HarmonyOS应用开发实战(实现电商首页)

  • 1. 项目涉及知识点罗列
  • 2. 项目目录结构介绍
  • 3. 最终的效果图
  • 4. 部分源码展示

1. 项目涉及知识点罗列

  • 掌握HUAWEI DevEco Studio开发工具
  • 掌握创建HarmonyOS应用工程
  • 掌握ArkUI自定义组件
  • 掌握@Entry@Component@Builder等装饰器
  • 掌握@State@Link等状态管理装饰器
  • 掌握ColumnRowFlexListTextImageTabsScroll等系统组件
  • 掌握资源的定义和应用

2. 项目目录结构介绍

在这里插入图片描述

3. 最终的效果图

在这里插入图片描述

4. 部分源码展示

typescript">import Home from '../components/Home';
import { MainPageConstants } from '../constants/MainPageConstants';
import { TabBarData, tabBarData } from '../viewmodel/MainPageData';

/*
* 电商主页
*/
@Entry
@Component
struct MainPage {
  @State currentIndex: number = 0;

  // 自定义底部导航图标
  @Builder TabBar(tabBarData: TabBarData) {
    Column({space: MainPageConstants.TAB_SPACE}) {
      Image(this.currentIndex === tabBarData.index ? tabBarData.selectImg : tabBarData.img)
        .height($r('app.float.main_page_tab_image_size'))
        .width($r('app.float.main_page_tab_image_size'))
      Text(tabBarData.title)
        .fontSize($r('app.float.main_page_tab_title_size'))
        .fontColor(this.currentIndex === tabBarData.index ? $r('app.color.main_page_tar_title_select_color') : Color.Black)
    }
  }

  build() {
    Tabs({
      index: this.currentIndex,
      barPosition: BarPosition.End
    }) {
      // 首页
      TabContent() {
        Home()
      }
      .tabBar(this.TabBar(tabBarData[0]))

      // 新品
      TabContent() {
        Column() {
          Text($r('app.string.main_page_tab_product'))
            .fontSize($r('app.float.product_page_text_size'))
        }
        .height(MainPageConstants.FULL_HEIGHT)
        .width(MainPageConstants.FULL_WIDTH)
        .justifyContent(FlexAlign.Center)
      }
      .tabBar(this.TabBar(tabBarData[1]))

      // 购物车
      TabContent() {
        Column() {
          Text($r('app.string.main_page_tab_cart'))
            .fontSize($r('app.float.product_page_text_size'))
        }
        .height(MainPageConstants.FULL_HEIGHT)
        .width(MainPageConstants.FULL_WIDTH)
        .justifyContent(FlexAlign.Center)
      }
      .tabBar(this.TabBar(tabBarData[2]))

      // 我的
      TabContent() {
        Column() {
          Text($r('app.string.main_page_tab_personal'))
            .fontSize($r('app.float.product_page_text_size'))
        }
        .height(MainPageConstants.FULL_HEIGHT)
        .width(MainPageConstants.FULL_WIDTH)
        .justifyContent(FlexAlign.Center)
      }
      .tabBar(this.TabBar(tabBarData[3]))
    }
    .backgroundColor($r('app.color.main_page_background_color'))
    .onChange((index: number) => {
      this.currentIndex = index;
    })
  }
}

ps:需要完整源码的同学,可以在评论区留言!!!


http://www.niftyadmin.cn/n/5349510.html

相关文章

sealos aptyum安装 sealos 部署k8s

包管理工具安装​ DEB 源​ echo "deb [trustedyes] https://apt.fury.io/labring/ /" | sudo tee /etc/apt/sources.list.d/labring.list sudo apt update sudo apt install sealos -yRPM 源​ sudo cat > /etc/yum.repos.d/labring.repo << EOF [fury]…

13.docker私服registry搭建

容器注册 Docker Hub是最大、使用最广泛的docker容器注册托管中心。 registry用于保存docker镜像&#xff0c;包括镜像的层次结构和元数据。启动容器时&#xff0c;docker daemon会试图从本地获取相关的镜像&#xff1b;本地镜像不存在时&#xff0c;其将从registry中下载该镜…

关于css 的基础试题

CSS是什么的缩写&#xff1f; A. Creative Style SheetsB. Cascading Style SheetsC. Computer Style SheetsD. Colorful Style Sheets 在HTML中&#xff0c;通过什么标签引入CSS样式&#xff1f; A. <script>B. <style>C. <link>D. <css> 以下哪个选项…

Springdoc 注解一览及使用案例

摘要&#xff1a;Springdoc 是一个基于 Spring Boot 的文档生成器&#xff0c;用于生成 RESTful 服务的 API 文档。本文将介绍 Springdoc 中的常用注解及其使用案例&#xff0c;包括 OpenAPIMetadata、Operation、GetMapping 等。 一、Springdoc 注解概述 Springdoc 提供了多种…

踩坑,新版swiper在ant design pro 或react组件中autoplay不起作用的更正设置方法

swiper一直更新是个好事&#xff0c;但使用方法一直在悄悄的变&#xff0c;真得很坑人&#xff0c;直接带过坑吧。 关键在这个引入这里&#xff0c;新版的必须将Autoplay作为模块引入&#xff0c;反正和以前版本有很多不一样了。 import { Autoplay, EffectFade, Pagination…

Spring Boot + EasyExcel实现Excel文件导入导出

Java解析、生成Excel比较有名的框架有Apache poi、jxl等&#xff0c;使用者可自行斟酌。 一、 为什么使用 EasyExcel 1.1 内存控制 Apache poi、jxl也能解析Excel&#xff0c;但他们都存在一个问题就是非常的耗内存&#xff0c;poi有一套SAX模式的API可以一定程度的解决一些…

【STM32】STM32学习笔记-Unix时间戳(41)

00. 目录 文章目录 00. 目录01. Unix时间戳02. UTC/GMT03. 时间戳转换04. C 标准库 <time.h>05. 时间相关函数示例5.1 time函数5.2 gmtime函数5.3 localtime函数5.4 mktime函数5.5 ctime函数5.6 asctime函数5.7 strftime函数 06. 预留07. 附录 01. Unix时间戳 •Unix 时…

首页图片自适应宣传海报

前言&#xff1a;昨天没有退款给别人&#xff0c;被人举报了&#xff0c;商户号封了&#xff0c;所以上面通知要做一个通知海报&#xff0c;告诉用户我们要升级对接第三方银联支付。我也不清楚怎么想的&#xff0c;有设计也不让设计处理图片&#xff0c;告诉我以后图片可能会奇…