• uni-app——項目day01


    配置uni-app開發環境

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

     

    创建项目

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

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

    目录结构

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

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

    使用git管理项目

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

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

    tabBar开发

    创建tabBar分支

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

     

    创建tabbar页面 

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

    配置tabBar效果

    1. "tabBar": {
    2. "selectedColor": "#C00000",
    3. "list": [
    4. {
    5. "pagePath": "pages/home/home",
    6. "text": "首页",
    7. "iconPath": "static/tab_icons/home.png",
    8. "selectedIconPath": "static/tab_icons/home-active.png"
    9. },
    10. {
    11. "pagePath": "pages/cate/cate",
    12. "text": "分类",
    13. "iconPath": "static/tab_icons/cate.png",
    14. "selectedIconPath": "static/tab_icons/cate-active.png"
    15. },
    16. {
    17. "pagePath": "pages/cart/cart",
    18. "text": "购物车",
    19. "iconPath": "static/tab_icons/cart.png",
    20. "selectedIconPath": "static/tab_icons/cart-active.png"
    21. },
    22. {
    23. "pagePath": "pages/my/my",
    24. "text": "我的",
    25. "iconPath": "static/tab_icons/my.png",
    26. "selectedIconPath": "static/tab_icons/my-active.png"
    27. }
    28. ]
    29. }

    删除默认的index页面 

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

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

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

    修改导航栏条的样式效果

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

    2. 修改 globalStyle 节点如下:

    1. {
    2. "globalStyle": {
    3. "navigationBarTextStyle": "white",
    4. "navigationBarTitleText": "鼠鼠优购",
    5. "navigationBarBackgroundColor": "#C00000",
    6. "backgroundColor": "#FFFFFF"
    7. }
    8. }

    分支的提交与合并

    首页

    创建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博客

    1. //导入网络请求的包
    2. import { $http } from '@escook/request-miniprogram'
    3. uni.$http=$http
    4. //配置根路径
    5. $http.baseUrl='https://api-hmugo-web.itheima.net'
    6. //请求拦截器
    7. $http.beforeRequest=function(options){
    8. uni.showLoading({
    9. title:'数据加载中...'
    10. })
    11. }
    12. //响应拦截器
    13. $http.afterRequest=function(){
    14. uni.hideLoading()
    15. }

    轮播图区域

    请求轮播图的数据

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

    home.vue中

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. //轮播图的数据列表
    6. swiperList:[]
    7. };
    8. },
    9. onLoad(){
    10. this.getSwiperList()
    11. },
    12. methods:{
    13. async getSwiperList(){
    14. const {data:res}= await uni.$http.get('/api/public/v1/home/swiperdata')
    15. //请求失败
    16. if(res.meta.status!==200){
    17. return uni.showToast({
    18. title:'数据请求失败!',
    19. duration:1500,
    20. icon: 'none'
    21. })
    22. }
    23. //请求成功
    24. this.swiperList=res.message
    25. console.log(this.swiperList)
    26. }
    27. }
    28. }
    29. script>
    30. <style lang="scss">
    31. style>

    渲染轮播图的UI结构

    1. <template>
    2. <view>
    3. <swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" :circular="true">
    4. <swiper-item v-for="(item,i) in swiperList" :key="i">
    5. <view class="swiper-item">
    6. <image :src="item.image_src">image>
    7. view>
    8. swiper-item>
    9. swiper>
    10. view>
    11. template>

     效果如下

    配置小程序分包

    1. "subPackages": [
    2. {"root":"subpkg",
    3. "pages":[]}
    4. ],

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

    将view组件改为navigator组件,

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

    封装uni.$showMsg()方法

    分类导航区域

    获取分类导航的数据

    用到的接口如下

     

    渲染分类导航的UI结构

    点击跳转分类页面

    楼层区域

    获取楼层数据

     

    渲染楼层标题 

     得到如下

     

    渲染楼层图片

    1. <view class="floor-list">
    2. <view class="floor-item" v-for="(item,i) in floorList" :key="i">
    3. <image :src="item.floor_title.image_src" class="floor-title">image>
    4. <view class="floor-img-box">
    5. <view class="left-img-box">
    6. <image :src="item.product_list[0].image_src" :style="{width:item.product_list[0].image_width+'rpx'}" mode="widthFix"> image>
    7. view>
    8. <view class="right-img-box">
    9. <view class="roght-img-item" v-for="(item2,i2) in item.product_list" :key="i2" v-show="i2 !== 0">
    10. <image :src="item2.image_src" mode="widthFix" :style="{width:item2.image_width+'rpx'}" >image>
    11. view>
    12. view>
    13. view>
    14. view>
    15. view>
    1. .floor-title{
    2. height: 60rpx;
    3. width: 100%;
    4. display: flex;
    5. }
    6. .right-img-box{
    7. display:flex;
    8. flex-wrap: wrap;
    9. justify-content: space-around;
    10. }
    11. .floor-img-box{
    12. display: flex;
    13. padding-left: 10rpx
    14. }

    效果如下 

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

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

     

     

    合并分支并提交

  • 相关阅读:
    ipv6地址概述——带你了解ipv6与ipv4的不同
    [代码已开源]集群聊天服务器与客户端开发
    人工智能|机器学习——k-近邻算法(KNN分类算法)
    函数对象使用
    vue3中setup使用组合式函数提取分页逻辑(简单示例)
    揭示抽象的奥秘:抽象类与接口得一可安天下
    python LeetCode 刷题记录 67
    【乐吾乐3D可视化组态编辑器】相机与视角
    详解Kafka 3.0 稳定版新特性
    OpenCV入门9:图像增强和图像滤波
  • 原文地址:https://blog.csdn.net/m0_62327332/article/details/134326578