【uni-app从入门到实战】商品导航

224 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

商品详情完成后还差底部的商品导航,我们不需要自己写,有现成的扩展组件:uni-goods-nav 商品导航,在页面可以点击下载&安装

点击绿色按钮使用HBuilderX导入插件,在HBuilderX中选中我们的项目,导入成功后,我们在 goods_detail.vue 中直接使用即可,我们可以先把官网的基本用法的代码粘过来,看看效果:

<template>
	<uni-goods-nav :fill="true"  :options="options" :buttonGroup="buttonGroup"  @click="onClick" @buttonClick="buttonClick" />
</template>
<script>

export default {
	data () {
	  return {
	    options: [{
			icon: 'headphones',
			text: '客服'
		}, {
			icon: 'shop',
			text: '店铺',
			info: 2,
			infoBackgroundColor:'#007aff',
			infoColor:"red"
		}, {
			icon: 'cart',
			text: '购物车',
			info: 2
		}],
	    buttonGroup: [{
	      text: '加入购物车',
	      backgroundColor: '#ff0000',
	      color: '#fff'
	    },
	    {
	      text: '立即购买',
	      backgroundColor: '#ffa200',
	      color: '#fff'
	    }
	    ]
	  }
	},
	methods: {
	  onClick (e) {
	    uni.showToast({
	      title: `点击${e.content.text}`,
	      icon: 'none'
	    })
	  },
	  buttonClick (e) {
	    console.log(e)
	    this.options[2].info++
	  }
	}
}
</script>

我们运行来看看效果,点击进入商品详情页,发现只有把商品介绍拉到底部商品导航才能展示出来:

GIF.gif

我们修改代码,将组件用view包裹,同时改变层级:

<view class="goods_nav">
    <uni-goods-nav :fill="true"  :options="options" :buttonGroup="buttonGroup"  @click="onClick" @buttonClick="buttonClick" />
</view>

修改样式:

.goods_nav{
    position: fixed;
    bottom: 0;
    width: 100%;
}

运行程序,查看结果:

image.png

现在样式正常了,但是拉到底部好像把详情遮挡了一些,所以我们修改 box3 的样式,增加一个 padding-bottom 即可

我们对其中的参数进行介绍: 首先看data中的options,对应左侧的客服、店铺、购物车这三个图标按钮,可以修改图片和文字以及角标。buttonGroup对应着右侧的加入购物车和立即购买这两个按钮

然后我们来看方法onClick,是左侧三个按钮点击时所触发的事件,它们三个共用这个事件怎么区分呢?我们可以来打印下其中的参数 e

onClick (e) {
    console.log(e)
}

分别点击客服、店铺、购物车,打印内容如下: image.png

所以,我们可以根据 index 来区分点击的是左侧的哪个按钮

buttonClick 则是右侧按钮的点击事件。可以用同样的方法进行区分