vue.set- 最帅程序员

本文介绍了一个基于Vue的取餐柜购物车组件实现方案,包括增减数量的功能及对应的交互逻辑。通过@click.prevent指令触发事件,使用$bus.emit进行组件间通信,并利用Vue的$set方法确保数据变化的响应式。

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

<template>
<!-- 取餐柜 购物车组件 -->
    <div class="cartcontrol-cupboard">
    <div class="cart-decrease"  @click.prevent="decreaseCart()"><img :src="reduce" alt="" /></div>
    <div class="cart-count"  >{{items.number}}</div>
    <div class="cart-add" @click.prevent="addCart()" ><img :src="add" alt="" /></div>
    </div>
</template>

<script>
import add from "../../static/img/add.png";
import reduce from "../../static/img/reduce.png";
export default {
  name: "cartcontrol-cupboard",
  data() {
    return {
      add,
      reduce,
      number: 1,
      items: { number: 1, id: "1" }
    };
  },
  methods: {
    decreaseCart() {
      console.log("decreaseCart");
      this.$bus.emit("changeAnimate");
    },
    addCart() {
      console.log("addCart");
      this.$bus.emit("changeAnimate");
      const number = this.items.number++;
      this.$set(this.items, 0, number);
    }
  }
};
</script>

<style scoped lang="scss">
@import "../style/mixin.scss";
.cartcontrol-cupboard {
  @include flex();
  img {
    @include size(44px, 44px);
  }
  .cart-decrease,
  .cart-add {
    padding: 20px;
  }
  .cart-count {
    @include font(26px, "#333333", "");
  }
}
</style>

vue.set

this.$set


1.  要改变的值

2.要改变的值的下标 或者属性

3.要改变的value

可以用于深度监听的一样的效果 改变vue中 内存地址不变 vue监听不到的数据变化的响应


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值