首页热卖推荐商品显示axios异步请求数据动态渲染实现

flex-wrap属性:

默认情况下,项目都排在一条线(又称"轴线")上。flex- wrap属性定义,如果一条轴线 排不下,如何换行?

flex-wrap:wrap 该样式用于设置 换行。

bash 复制代码
.product_name{
                    white-space: nowrap;
                    overflow: hidden;
                    text-overflow: ellipsis;
                }
bash 复制代码
<view>
<!-- 搜索框开始 -->
    <SearchBar></SearchBar>
<!-- 搜索框结束 -->

<!-- 轮播图开始 -->
<view class="index_swiper">
    <swiper autoplay circular indicator-dots>
        <swiper-item 
            wx:for="{{swiperList}}"
            wx:for-item="swiper"
            wx:key="id"
            >
            <navigator>
                <image mode="widthFix" src="{{'http://localhost:8080/image/swiper/'+swiper.swiperPic}}"></image>
            </navigator>
        </swiper-item>
    </swiper>
</view>
<!-- 轮播图结束 -->

    <!-- 商品大类显示 开始 -->
<view class="index_bigType">
    <view class="bigTypeRow">
        <navigator
            wx:for="{{bigTypeList_row1}}"
            wx:for-item="bigType"
            wx:key="id">
        <image mode="widthFix" src="{{baseUrl+'/image/bigType/'+bigType.image}}"></image>
        </navigator>
    </view>
    <view class="bigTypeRow">
        <navigator
            wx:for="{{bigTypeList_row2}}"
            wx:for-item="bigType"
            wx:key="id">
            <image mode="widthFix" src="{{baseUrl+'/image/bigType/'+bigType.image}}"></image>
        </navigator>
    </view>
</view>
<!-- 商品大类显示结束 -->

<!-- 商品热卖推荐 开始 -->
<view class="index_hotProduct">
    <view class="product_title">
        热卖推荐
    </view>
    <view class="product_list">
        <view class="product_detail"
            wx:for="{{hotProductList}}"
            wx:for-item="hotProduct"
            wx:key="id"
        >
            <navigator>
                <image mode="widthFix" src="{{baseUrl+'/image/product/'+hotProduct.proPic}}"></image>
                <view class="product_name">{{hotProduct.name}}</view>
                <view class="product_price">¥{{hotProduct.price}}</view>
                <button size="mini" type="warn">立即购买</button>
            </navigator>
        </view>
    </view>
</view>
<!-- 商品热卖推荐 结束 -->
</view>
bash 复制代码
.index_swiper{
    swiper{
        width: 750rpx;
        height: 375rpx;
        swiper-item{
            image{
                width: 100%;
            }
        }
    }
}

.index_bigType{
    padding-top: 20rpx;
    background-color: #F7F7F7;
    .bigTypeRow{
        display: flex;
        navigator{
            flex:1;
            image{
                width: 150rpx;
            }
        }
    }
}

.index_hotProduct{
    .product_title{
        font-size: 32rpx;
        font-weight: 600;
        padding: 20rpx;
        color: var(--themeColor);
        background-color: #E0E0E0;
    }
    .product_list{
        display: flex;
        flex-wrap: wrap;
        .product_detail{
            margin: 15rpx;
            width: 46%;
            text-align: center;
            navigator{
                image{
                    width: 100%;
                    background-color: #F5F5F5;
                }
                .product_name{
                    white-space: nowrap;
                    overflow: hidden;
                    text-overflow: ellipsis;
                }
                .product_price{
                    color: var(--themeColor);
                }
                button{}
            }
        }
    }
}
bash 复制代码
import { requestUtil,getBaseUrl } from "../../utils/requestUtil"

Page({

  /**
   * 页面的初始数据
   */
  data: {
    //轮播图数组
    swiperList:[],
    baseUrl:'',
    bigTypeList:[],
    bigTypeList_row1:[],
    bigTypeList_row2:[],
    hotProductList:[]
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
     const baseUrl = getBaseUrl();
     this.setData({
         baseUrl
     })
     this.getSwiperList();
     this.getBigTypeList();
     this.getHotProductList();
  },
  async getSwiperList(){

    const result=await requestUtil({
        url:'/product/findSwiper',
        method:"GET"
    });
    this.setData({
        swiperList:result.message
    })

  },
  async getBigTypeList(){
    const result = await requestUtil({
        url:'/bigType/findAll',
        method:"GET"
    });
    console.log(result)
    const bigTypeList=result.message
    const bigTypeList_row1=bigTypeList.filter((item,index)=>{
        return index<5;
    })
    const bigTypeList_row2=bigTypeList.filter((item,index)=>{
        return index>=5;
    })
    this.setData({
        bigTypeList,
        bigTypeList_row1,
        bigTypeList_row2
    })
  },
  /**
   * 获取热卖商品
   */
  async getHotProductList(){
    const result=await requestUtil({
        url:'/product/findHot',
        method:"GET"
    });
    this.setData({
        hotProductList: result.message
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    
  }
})
相关推荐
Yeats_Liao1 小时前
Feed流系统设计(三):数据模型与存储设计,从表结构到Redis收件箱
java·javascript·redis
我是真菜1 小时前
彻底理解js中的深浅拷贝
前端·javascript
江畔柳前堤1 小时前
github实战指南07-CLI 与高级技巧
前端·人工智能·chrome·深度学习·github·caffe·issue
kisdiem2 小时前
ReAct:让大模型一边推理,一边行动
前端·react.js·前端框架
西部荒野子2 小时前
JS 如何跑进两个原生世界
前端
RANxy2 小时前
AntV 入门系列第一篇:从零开始的数据可视化之旅
前端
小小小小宇2 小时前
前端 WebRTC 全解析与应用
前端
华玥2 小时前
优化滚动列表,使用虚拟滚动
前端
小小小小宇2 小时前
前端 WebAssembly 全解析与应用
前端
huangdong_3 小时前
京东商品图片视频批量下载与m3u8视频合并技术完整实现方案
大数据·前端·数据库