迷你世界盒子商城在哪里教程,迷你世界盒子商城怎么激活

首页 > 游戏 > 作者:YD1662023-10-29 18:28:05

3.3.3 配置小程序分包

分包可以减少小程序首次启动时的加载时间

项目中,将 tabBar相关的 4 个页面放在主包,其他页面(如:商品详情页、商品列表页)放在分包

在 uni-app 项目中,配置分包的步骤如下:

  1. 在项目根目录中,创建分包的根目录,命名为 subpkg
  2. 在 pages.json 中,和 pages节点平级的位置声明 subPackages节点,用来定义分包相关的结构:
  3. {
    "subPackages": [{
    "root": "subpkg",
    "pages": []
    }]
    }
  4. 在 subpkg目录上新建页面

迷你世界盒子商城在哪里教程,迷你世界盒子商城怎么激活(5)

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

将 <swiper-item></swiper-item>节点内的view组件,改造为navigator导航组件,并动态绑定url属性的值:

迷你世界盒子商城在哪里教程,迷你世界盒子商城怎么激活(6)

3.3.5 封装 uni.$showMsg()

当数据请求失败之后,经常需要调用 uni.showToast({ /* 配置对象 */ }) 方法来提示用户。此时可以在全局封装一个 uni.$showMsg() 方法,来简化 uni.showToast() 方法的调用

具体实现步骤如下:

  1. 在 main.js 中,为 uni对象挂在自定义的 $showMsg() 方法:
  2. /**
    * 封装展示消息提示的方法
    */
    uni.$showMsg = function(title = '数据加载失败!', duration = 1500) {
    uni.showToast({
    title,
    duration,
    icon: 'none',
    })
    }
  3. 更改原先请求失败时提示消息的调用:
  4. // 3. 获取轮播图数据的方法
    async getSwiperList() {
    // 3.1 发起请求
    const { data: res } = await uni.$http.get('/api/public/v1/home/swiperdata')
    // 3.2 请求失败时执行
    if (res.meta.status !== 200) return uni.$showMsg()
    // 3.3 请求成功时为 data 中的数据赋值
    this.swiperList = res.message
    }
3.4 分类导航区域3.4.1 获取分类导航的数据1. 实现思路
  1. 在 data中定义轮播图的数组
  2. 在 onLoad生命周期函数中调用获取数据的方法
  3. 在 methods中定义获取数据的方法
2. 示例

<script> export default { data() { return { // 1. 分类导航的数据列表 navList: [], }; }, onLoad() { // 2. 在 onLoad 中调用获取数据的方法 this.getNavList() }, methods: { // 3. 在 methods 中定义获取数据的方法 async getNavList() { const { data: res } = await uni.$http.get('/api/public/v1/home/catitems') if (res.meta.status !== 200) return uni.$showMsg() this.navList = res.message } } } </script>3. 获取到的数据如下所示:

{ "message": [ { "name": "分类", "image_src": "https://api-hmugo-web.itheima.net/pyg/icon_index_nav_4@2x.png", "open_type": "switchTab", "navigator_url": "/pages/category/index" }, { "name": "秒*拍", "image_src": "https://api-hmugo-web.itheima.net/pyg/icon_index_nav_3@2x.png" }, { "name": "超市购", "image_src": "https://api-hmugo-web.itheima.net/pyg/icon_index_nav_2@2x.png" }, { "name": "母婴品", "image_src": "https://api-hmugo-web.itheima.net/pyg/icon_index_nav_1@2x.png" } ], "meta": { "msg": "获取成功", "status": 200 } }

返回参数说明 :

参数名

类型

说明

name

string

标题名称

image_src

string

图片路径

3.4.2 渲染分类导航的 UI 结构
  1. 定义如下的 UI 结构
  2. <template>
    <!-- 分类导航区域 -->
    <view class="nav-list">
    <view class="nav-item" v-for="(item, i) in navList" :key="i">
    <image :src="item.image_src" class="nav-img"></image>
    </view>
    </view>
    </template>
  3. 通过如下的样式美化页面结构:
  4. <style lang="scss">
    .nav-list {
    display: flex;
    justify-content: space-around;
    margin: 15px 0;

    .nav-img {
    width: 128rpx;
    height: 140rpx;
    }
    }
    </style>
  5. 测试效果如下:

迷你世界盒子商城在哪里教程,迷你世界盒子商城怎么激活(7)

3.4.3 点击第一项,切换到分类页面
  1. 为 nav-item 绑定点击事件处理函数:
  2. <!-- 分类导航区域 -->
    <view class="nav-list">
    <view class="nav-item" v-for="(item, i) in navList" :key="i" @click="navClickHandler(item)">
    <image :src="item.image_src" class="nav-img"></image>
    </view>
    </view>
  3. 定义 nacClickHandler事件处理函数:
  4. <script>
    export default {
    methods: {
    // nav-item 项被点击时的事件处理函数
    navClickHandler(item) {
    // 判断点击的是哪个 nav
    if (item.name == '分类') {
    uni.switchTab({
    url: '/pages/cate/cate'
    })
    }
    }
    }
    }
    </script>
4.5 楼层区域4.5.1 获取楼层数据1. 实现思路
  1. 在 data中定义轮播图的数组
  2. 在 onLoad生命周期函数中调用获取数据的方法
  3. 在 methods中定义获取数据的方法
2. 示例

<script> export default { data() { return { // 1. 楼层的数据列表 floorList: [], }; }, onLoad() { // 2. 调用获取楼层数据的方法 this.getFloorList() }, methods: { // async getFloorList() { const { data: res } = await uni.$http.get('/api/public/v1/home/floordata') if (res.meta.status !== 200) uni.$showMsg() this.floorList = res.message } } } </script>3. 获取到的数据示例

{ "message": [ { "floor_title": { "name": "时尚女装", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor01_title.png" }, "product_list": [ { "name": "优质服饰", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor01_1@2x.png", "image_width": "232", "open_type": "navigate", "navigator_url": "/pages/goods_list/index?query=服饰" }, { "name": "春季热门", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor01_2@2x.png", "image_width": "233", "open_type": "navigate", "navigator_url": "/pages/goods_list/index?query=热" }, { "name": "爆款清仓", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor01_3@2x.png", "image_width": "233", "open_type": "navigate", "navigator_url": "/pages/goods_list/index?query=爆款" }, { "name": "倒春寒", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor01_4@2x.png", "image_width": "233", "open_type": "navigate", "navigator_url": "/pages/goods_list/index?query=春季" }, { "name": "怦然心动", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor01_5@2x.png", "image_width": "233", "open_type": "navigate", "navigator_url": "/pages/goods_list/index?query=心动" } ] }, { "floor_title": { "name": "户外活动", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor02_title.png" }, "product_list": [ { "name": "勇往直前", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor02_1@2x.png", "image_width": "232", "open_type": "navigate", "navigator_url": "/pages/goods_list/index?query=户外" }, { "name": "户外登山包", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor02_2@2x.png", "image_width": "273", "open_type": "navigate", "navigator_url": "/pages/goods_list/index?query=登山包" }, { "name": "超强手套", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor02_3@2x.png", "image_width": "193", "open_type": "navigate", "navigator_url": "/pages/goods_list/index?query=手套" }, { "name": "户外运动鞋", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor02_4@2x.png", "image_width": "193", "open_type": "navigate", "navigator_url": "/pages/goods_list/index?query=运动鞋" }, { "name": "冲锋衣系列", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor02_5@2x.png", "image_width": "273", "open_type": "navigate", "navigator_url": "/pages/goods_list/index?query=冲锋衣" } ] }, { "floor_title": { "name": "箱包配饰", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor03_title.png" }, "product_list": [ { "name": "清新气质", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor03_1@2x.png", "image_width": "232", "open_type": "navigate", "navigator_url": "/pages/goods_list?query=饰品" }, { "name": "复古胸针", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor03_2@2x.png", "image_width": "263", "open_type": "navigate", "navigator_url": "/pages/goods_list?query=胸针" }, { "name": "韩版手链", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor03_3@2x.png", "image_width": "203", "open_type": "navigate", "navigator_url": "/pages/goods_list?query=手链" }, { "name": "水晶项链", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor03_4@2x.png", "image_width": "193", "open_type": "navigate", "navigator_url": "/pages/goods_list?query=水晶项链" }, { "name": "情侣表", "image_src": "https://api-hmugo-web.itheima.net/pyg/pic_floor03_5@2x.png", "image_width": "273", "open_type": "navigate", "navigator_url": "/pages/goods_list?query=情侣表" } ] } ], "meta": { "msg": "获取成功", "status": 200 } }

返回参数说明

参数名

类型

说明

floor_title

string

一级分类标题

product_list

array

一级分类内容

name

string

名称

image_src

string

图片路径

image_width

string

图片宽度

open_type

string

打开方式

navigator_url

string

跳转连接

3.5.2 渲染楼层的标题
  1. 定义如下的 UI 结构:
  2. <template>
    <!-- 楼层区域 -->
    <view class="floor-list">
    <!-- 楼层的 item 项 -->
    <view class="floor-item" v-for="(item, i) in floorList" :key="i">
    <!-- 楼层标题 -->
    <image :src="item.floor_title.image_src" class="floor-title"></image>
    </view>
    </view>
    </template>
  3. 美化楼层标题的样式
  4. <style lang="scss">
    .floor-title {
    height: 60rpx;
    width: 100%;
    display: flex;
    }
    </style>
3.5.3 渲染楼层里的图片
  1. 定义楼层图片区域的UI结构:
  2. <template>
    <!-- 楼层区域 -->
    <view class="floor-list">
    <!-- 楼层的 item 项 -->
    <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="right-img-item" v-for="(item2, i2) in item.product_list" :key="i2" v-if="i2 !== 0">
    <image :src="item2.image_src" mode="widthFix" :style="{width: item2.image_width 'rpx'}">
    </image>
    </view>
    </view>
    </view>
    </view>
    </view>
    </template>
  3. 美化楼层图片区域的样式:
  4. <style lang="scss">
    .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;
    }
    </style>
  5. 完整的测试效果如下:

迷你世界盒子商城在哪里教程,迷你世界盒子商城怎么激活(8)

上一页123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.