uni-app——項目day01

news2024/11/25 21:34:32

配置uni-app開發環境

uni-app快速上手 | uni-app官网

 

创建项目

图中四个划线就是要配置的地方.

选择vue2还是vue3看个人选择。

目录结构

但是现在新版本创建的项目已经没有components目录了,需要自己创建。

项目运行到微信开发者工具

使用git管理项目

node-modules是第三方包,没有必要进行git管理。

/unpackage/dist是运行时自动生成的目录。

tabBar开发

创建tabBar分支

然后使用git branch可以查看当前所在分支。

 

创建tabbar页面 

四个页面创建好后在pages.json里面会自动多四个页面路径。 

配置tabBar效果

"tabBar": {
"selectedColor": "#C00000",
"list": [
{
"pagePath": "pages/home/home",
"text": "首页",
"iconPath": "static/tab_icons/home.png",
"selectedIconPath": "static/tab_icons/home-active.png"
},
{
"pagePath": "pages/cate/cate",
"text": "分类",
"iconPath": "static/tab_icons/cate.png",
"selectedIconPath": "static/tab_icons/cate-active.png"
},
{
"pagePath": "pages/cart/cart",
"text": "购物车",
"iconPath": "static/tab_icons/cart.png",
"selectedIconPath": "static/tab_icons/cart-active.png"
},
{
"pagePath": "pages/my/my",
"text": "我的",
"iconPath": "static/tab_icons/my.png",
"selectedIconPath": "static/tab_icons/my-active.png"
}
]
}

删除默认的index页面 

1. 在 HBuilderX 中,把 pages 目录下的 index首页文件夹 删除掉

2. 同时,把 page.json 中记录的 index 首页 路径删除掉

3. 为了防止小程序运行失败,在微信开发者工具中,手动删除 pages 目录下的 index 首页文件 夹 4. 同时,把 components 目录下的 uni-link 组件文件夹 删除掉

修改导航栏条的样式效果

1. 打开 pages.json 这个全局的配置文件

2. 修改 globalStyle 节点如下:

{
"globalStyle": {
"navigationBarTextStyle": "white",
"navigationBarTitleText": "鼠鼠优购",
"navigationBarBackgroundColor": "#C00000",
"backgroundColor": "#FFFFFF"
}
}

分支的提交与合并

首页

创建home分支

配置网络请求

@escook/request-miniprogram - npm (npmjs.com) 

跟着官方文档里面的指引做,可以将配置请求响应拦截器和请求根路径等等。

首先在项目根目录初始化一个npm的包管理配置文件。

git init -y

 安装网络请求的包

npm install @escook/request-miniprogram

然后在main.js里面进行如下配置 

凡是wx.的方法都可以使用uni.代替。

这部分的代码必须要放在ifndef vue3外面,否则微信开发者哪里会有报错,具体就是下面这个

【微信小程序】TypeError: Cannot read property ‘get‘ of undefined & Error: MiniProgramError-CSDN博客

//导入网络请求的包
import { $http } from '@escook/request-miniprogram'

uni.$http=$http
//配置根路径
$http.baseUrl='https://api-hmugo-web.itheima.net'
//请求拦截器
$http.beforeRequest=function(options){
  uni.showLoading({
    title:'数据加载中...'
  })
}
//响应拦截器
$http.afterRequest=function(){
  uni.hideLoading()
}

轮播图区域

请求轮播图的数据

const { data : res} 是解构赋值,res可以换,前面的data不能

home.vue中

<template>
  <view>
    home
  </view>
</template>

<script>
  export default {
    data() {
      return {
        //轮播图的数据列表
        swiperList:[]
      };
    }, 
    onLoad(){
      this.getSwiperList()
    },
    methods:{
     async getSwiperList(){
      const {data:res}= await uni.$http.get('/api/public/v1/home/swiperdata')
      //请求失败
      if(res.meta.status!==200){
        return uni.showToast({
          title:'数据请求失败!',
          duration:1500,
          icon: 'none' 
        })
      }
      //请求成功  
      this.swiperList=res.message
      console.log(this.swiperList)
      }
    }
  }
</script>

<style lang="scss">

</style>

渲染轮播图的UI结构

<template>
  <view>
    <swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" :circular="true">
      <swiper-item v-for="(item,i) in swiperList" :key="i">
        <view class="swiper-item">
          <image :src="item.image_src"></image>
        </view>
      </swiper-item>
    </swiper>
  </view>
</template>
<style lang="scss">
swiper{
  height:330rpx;
  .swiper-item,
  image{
    width:100%;
    height:100%;
  }
}
</style> 

 效果如下

配置小程序分包

  "subPackages": [
    {"root":"subpkg",
    "pages":[]}
  ],

 点击轮播图跳转商品详情页

将view组件改为navigator组件,

跳转页面的同时将商品id也传过去

封装uni.$showMsg()方法

分类导航区域

获取分类导航的数据

用到的接口如下

 

渲染分类导航的UI结构

点击跳转分类页面

楼层区域

获取楼层数据

 

渲染楼层标题 

 得到如下

 

渲染楼层图片

  <view class="floor-list">
    <view class="floor-item" v-for="(item,i) in floorList" :key="i">
      <image :src="item.floor_title.image_src" class="floor-title"></image>
      <view class="floor-img-box">
        <!--左侧大图片的盒子-->
        <view class="left-img-box">
          <image :src="item.product_list[0].image_src" :style="{width:item.product_list[0].image_width+'rpx'}" mode="widthFix"> </image>
        </view>
        <!--右侧4个小图片的盒子-->
        <view class="right-img-box">
          <view class="roght-img-item" v-for="(item2,i2) in item.product_list" :key="i2" v-show="i2 !== 0">
            <image :src="item2.image_src" mode="widthFix" :style="{width:item2.image_width+'rpx'}" ></image>
          </view>
        </view>
      </view>
    </view>
  </view>
.floor-title{
  height: 60rpx;
  width: 100%;
  display: flex;
}

.right-img-box{
  display:flex;
  flex-wrap: wrap;
  justify-content: space-around;
}
.floor-img-box{
  display: flex;
  padding-left: 10rpx
}

效果如下 

点击楼层图片跳转到商品列表页面

 用到的返回数据如下所示.这里返回的路径有问题,要对路径做替换。

 

 

合并分支并提交

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1193429.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++初阶(十)模板初阶

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、泛型编程1、如何实现一个通用的交换函数呢&#xff1f;2、引出模板 二、函数模板1、函数模…

蓝桥杯之模拟与枚举day1

Question1卡片(C/CA组第一题) 这个是一道简单的模拟枚举题目&#xff0c;只要把对应每次的i的各个位都提取出来&#xff0c;然后对应的卡片数目减去1即可。属于打卡题目。注意for循环的特殊使用即可 #include <iostream> using namespace std; bool solve(int a[],int n…

Android逆向fiddler抓包工具——理解HTTP协议

HTTP协议格式 HTTP协议是一种应用非常广泛的应用层协议&#xff0c;当我们在浏览器中输入一个URL(“网址”)时&#xff0c;浏览器就会给客户端发送一个HTTP请求&#xff0c;服务器收到请求之后&#xff0c;就会返回一个HTTP响应。 为了能够看到HTTP请求和响应的详细内容&…

SQL触发器

触发器是与表有关的数据库对象。 在insert/update/delete之前(BEFORE)或之后(AFTER)&#xff0c;触发并执行触发 器中定义的SQL语句集合。 触发器的这种特性可以协助应用在数据库端确保数据的完整性, 日志记录 , 数据校验等操作 。 使用别名OLD和NEW来引用触发器中发生变化的…

linux系统中查看防火墙开放的端口状态 开放端口和禁用端口号操作命令

一、查看防火墙状态 查看防火墙状态&#xff1a;systemctl status firewalld 开启防火墙&#xff1a;systemctl start firewalld 关闭防火墙&#xff1a;systemctl stop firewalld 若遇到无法开启 先用&#xff1a;systemctl unmask firewalld.service 然后&#xff1a;s…

1.3数据结构之复杂度 力扣题目移除元素

移除元素首先我们可能会想到内存的释放&#xff0c;但是内存的释放是一次性的&#xff0c;不能断断续续&#xff0c;所以不能直接free掉。 思路1&#xff1a;时间复杂度是&#xff1a;O(n) 空间复杂度是&#xff1a;O(n) 思路2&#xff1a;时间复杂度&#xff1a;O(n) 空间复…

TortoiseSVN 状态图标不显示的两种解决办法

文章目录 TortoiseSVN 方式解决注册表方式解决 TortoiseSVN 方式解决 在桌面或者资源管理器中鼠标右键打开 TortoiseSVN 设置选择 Icon Overlays (图标覆盖)Status cache&#xff08;状态缓存&#xff09; 选择 ‘Shell’ 选择 Icon Overlays&#xff08;图标覆盖&#xff09;…

在软件测试过程中如何有效的开展接口自动化测试!

一.简介 接口自动化测试是指使用自动化测试工具和脚本对软件系统中的接口进行测试的过程。其目的是在软件开发过程中&#xff0c;通过对接口的自动化测试来提高测试效率和测试质量&#xff0c;减少人工测试的工作量和测试成本&#xff0c;并且能够快速发现和修复接口错误&…

ARMday04(开发版简介、LED点灯)

开发版简介 开发板为stm32MP157AAA,附加一个拓展版 硬件相关基础知识 PCB PCB&#xff08; Printed Circuit Board&#xff09;&#xff0c;中文名称为印制电路板&#xff0c;又称印刷线路板&#xff0c;是重要的电子部件&#xff0c;是电子元器件的支撑体&#xff0c;是电子…

JVM虚拟机-虚拟机性能监控、故障处理工具

1基础故障处理工具 jps&#xff08;JVM Process Status Tool&#xff09;是&#xff1a;虚拟机进程状况工具 作用&#xff1a;可以列出正在运行的虚拟机进程&#xff0c;并显示虚拟机执行主类&#xff08;Main Class&#xff0c;main()函数所在的类&#xff09;名称以及这些进…

人工智能数学基础3:用Python 编程求极限

求极限&#xff0c;并用Python 编程求极限 使用洛必达法则来求解 利用泰勒展开的方法来求解这个极限 import sympyx sympy.Symbol(x) f (sympy.sin(x) - x * sympy.cos(x)) / (sympy.sin(x) ** 3)limit_value sympy.limit(f, x, 0) print(limit_value)

【QT】qt打包程序后无法正常启动

本人在自己电脑上打包Qt程序后可以正常运行&#xff0c;但换了个电脑就无法运行了&#xff0c;显示应用程序无法正常启动&#xff08;0xc000007b&#xff09;。 造成这种情况的原因是因为系统变量的原因&#xff0c;我用的win10自带的cmd。 应该采用Qt自带的cmd&#xff0c;打开…

人工智能基础——python:Pandas与数据处理

人工智能的学习之路非常漫长&#xff0c;不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心&#xff0c;我为大家整理了一份600多G的学习资源&#xff0c;基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

四入进博会,优衣库围绕科技可持续演绎“服装进化论”

11月5日&#xff0c;第六届中国国际进口博览会在上海拉开帷幕。这些年来&#xff0c;进博巨大的平台效应&#xff0c;使其成为各个行业头部品牌的秀场&#xff0c;也持续为消费者、产业链带来惊喜。 今年&#xff0c;也是全球服装界科技知名品牌——优衣库的第四次进博之旅。从…

OpenCV校准棋盘集合

棋盘格可以与相机校准工具一起使用&#xff0c;例如ROS的camera_calibration包。您可以通过单击下面的任何链接免费下载 PDF 格式的各种棋盘&#xff0c;没有水印或广告。此外&#xff0c;还添加了基于 JavaScript 的棋盘生成器&#xff0c;允许您生成自定义尺寸。 提示&#…

《持续交付:发布可靠软件的系统方法》- 读书笔记(十三)

持续交付&#xff1a;发布可靠软件的系统方法&#xff08;十三&#xff09; 第 13 章 组件和依赖管理13.1 引言13.2 保持应用程序可发布13.2.1 将新功能隐蔽起来&#xff0c;直到它完成为止13.2.2 所有修改都是增量式的13.2.3 通过抽象来模拟分支 13.3 依赖13.3.1 依赖地狱13.3…

AlphaControls控件TsRadioGroup的使用

通常使用AlphaControls控件中的TsRadioGroup时&#xff0c;往往使用默认值&#xff0c;会造成TsRadioGroup标题被TsRadioGroup的ITEMs占用&#xff0c;严重影响美观&#xff1a; 解决方案&#xff0c;通过对TsRadioGroup的ContentVOffset属性&#xff0c;设置为10。即可立即改善…

计算机网络实验

计算机网络实验 使用软件PT7.0按照上面的拓扑结构建立网络&#xff0c;进行合理配置&#xff0c;使得所有计算机之间能够互相通信。并且修改各交换机的系统名称为&#xff1a;学号_编号&#xff0c;如你的学号为123&#xff0c;交换机Switch0的编号为0&#xff0c;则系统名称为…

linuxC语言缓冲区及小程序的实现

文章目录 1.文件缓冲区1.1介绍1.2缓冲文件系统1.3冲刷函数fflush1.4认识linux下的缓冲区 2.linux小程序的实现2.1 回车\r和换行\n2.2倒计时程序2.3进度条小程序sleep/usleep代码运行结果 1.文件缓冲区 1.1介绍 为缓和 CPU 与 I/O 设备之间速度不匹配&#xff0c;文件缓冲区用以…

matlab命令行窗口结果显示不全,解析式太长,输出不完整解决办法

一、背景 在运行matlab程序时&#xff0c;有时输出结果太长&#xff0c;命令行窗口无论怎么拉大都显示不全&#xff0c;复制结果也是会有…&#xff0c;而不是完整结果&#xff0c;如下图所示&#xff1a; 双击复制结果显示如下&#xff1a; y: (25exp(-8x)(10exp(8x) - 9))/…