微信小程序(黑马优购:商品详情)

本文介绍了在使用uni-app开发过程中,如何实现轮播图预览、图文标签的渲染优化(包括去除图片空白间隙和处理.webp格式),解决商品价格闪烁问题,以及底部商品导航组件的使用,以及点击事件中加入购物车功能的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.轮播图大图预览

<swiper-item v-for="(item,i) in goods_info.pics" :key="i">
          <image :src="item.pics_big" @click="preview(i)"></image>
      </swiper-item>
   preview(i){
         uni.previewImage({
                 current: i,
                 urls: this.goods_info.pics.map(x => x.pics_big)
          })
      }

2.渲染图文标签(HTML)

<rich-text :nodes="goods_info.goods_introduce"></rich-text>

 1)去除图片底部空白间隙

 async getGoodsDetail(goods_id){
        const { data: res} = await uni.$http.get('/api/public/v1/goods/detail',{goods_id})
        if(res.meta.status !== 200 ){
          return uni.$showMsg()
        }
        //去除图片底部空白间隙
       res.message.goods_introduce  = res.message.goods_introduce.replace(/<img /g,'<img style="display:block;"  ')
        
        this.goods_info = res.message
      },

2)解决.webp格式图片在手机上无法显示的问题replace(/webp/g,'jpg')

//去除图片底部空白间隙replace(/<img /g,'<img style="display:block;"  ')
        //解决.webp格式图片在手机上无法显示的问题replace(/webp/g,'jpg')
       res.message.goods_introduce  = 
       res.message.goods_introduce.replace(/<img /g,'<img style="display:block;"  ').replace(/webp/g,'jpg')

3.解决商品价格闪烁问题

在最外层View添加v-if条件

 <view v-if="goods_info.goods_name">

4.底部渲染

    
    <!-- 商品导航组件区域 -->
    <view class="goods_nav">
      <uni-goods-nav :fill="true" :options="options" :buttonGroup="buttonGroup" @click="onClick" @buttonClick="buttonClick" />
    </view>
  return {
        goods_info: {},
          options: [{
            icon: 'shop',
            text: '店铺',
            infoBackgroundColor: '#007aff',
            infoColor: "red"
          }, {
            icon: 'cart',
            text: '购物车',
            info: 0
          }],
          buttonGroup: [{
              text: '加入购物车',
              backgroundColor: '#ff0000',
              color: '#fff'
            },
            {
              text: '立即购买',
              backgroundColor: '#ffa200',
              color: '#fff'
            }
          ]

5.点击加入购物按钮跳转到购物车页面

onClick(e){
        if(e.content.text === '购物车'){
          uni.switchTab({
            url:'/pages/cart/cart'
          })
        }
      }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值