uniapp购物车基本功能——总价计算(商城项目)

获取数据

// 这是API调用部分

axios.get('/api/shopList').then(res => {

this.shopList = res.data;

// 确保res.data中的每个对象有quantity和price属性

quantity代表商品件数

price代表商品单价

});

渲染页面

<div class="info_shopPrice" v-for="(item, index) in shopList" :key="item.id">

              <span>{{ item.price}}</span>

  <u-number-box v-model="item.quantity" @minus="handMinus(index)" @plus="handPlus(index)"></u-number-box>

</div>

<p>合计价格: {{ totalPrice }} 元</p>

注:此处u-number-box采用的uView里的组件,@minus代表点击减号,@plus代表点击加号

方法

methods: {

handPlus(index) {

        this.shopList[index].quantity++;

},

handMinus(index) {

        if (this.shopList[index].quantity > 1) {

                this.shopList[index].quantity--;

        }

    },

},

计算属性(也是关键的一步,一行代码解决问题)

computed: {

    totalPrice() {

      return this.shopList.reduce((sum, item) => sum + (item.quantity* item.price), 0);

    },

  },

使用reduce方法遍历shopList数组,将每个商品的数量乘以价格累加到总价sum中,并最终返回总价

注:在计算属性定义了totalPrice,不必在data中在定义,否则会报重名的错

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值