Vue 改变下拉框的选择 动态渲染其他元素的数据

这篇博客展示了如何在Vue.js应用中实现一个小型产品组件,当用户从下拉框选择不同的商品规格时,实时更新显示的价格和餐具份数。通过监听`change`事件来触发`changeSize`方法,更新本地`show`变量,从而改变显示的商品信息。此外,还使用Vuex进行状态管理,获取商品详细信息。

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

场景与效果:下拉框的选择的规格不同时,使得价格和餐具份数也改变,如图:

 

smallProduct.vue>html

<!-- 点击购物车图标 弹出类名为addBox的盒子 -->
<div @click="getAdd(id)" class="cart">
      <img src="../assets/product/购物车.png" alt="" />
</div>

<div class="addBox" id="addBox" v-show="ifShow">
      <div class="infoBox">
        <button @click="getExit()" class="exitBtn">⨉</button>
        <div class="clear">
          <img class="smallPic left" :src="$host + imgsrc" alt="" />
          <div class="left">
            <p v-if="sizeInfo[show]">
              {{ sizeInfo[show].p_name }}
            </p>
            <p v-if="sizeInfo[show]">
              {{ sizeInfo[show].p_describe }}
            </p>
            <p v-if="sizeInfo[show]">
              ¥{{ sizeInfo[show].price }}
            </p>
            <p v-if="sizeInfo[show]">
              {{ sizeInfo[show].tableware }}
            </p>
          </div>
        </div>
      </div>
      <div class="line"></div>
      <div class="sizeBox">
        <span>规格选择</span>
<!-- 改变下拉框的值时触发的函数-->
        <select @change="changeSize($event)">
          <option :value="index" v-for="(item, index) in sizeInfo" :key="item.index">
            {{ sizeInfo[index].weight }}- {{ sizeInfo[index].crowd }}
          </option>
        </select>
      </div>
      <div class="myChoice clear">
        <span @click="getExit()" class="no">取消</span>
        <span @click="addCart()" class="yes">确认</span>
      </div>
    </div>
</div>

smallProduct.vue>js


import { mapState } from "vuex";

 data() {
    return {
      show: 0,
    };
  },
//点击购物车图标时 去store.js发送axios请求 连接node.js、sql查到磅数 人数 餐具数 将查询的结果返回给store.js中名为sizeInfo的数组
    getAdd(id) {
      this.$store.dispatch("sizeInfo", id);
      this.ifShow = true;
    },

//下拉框改变 拿到下拉框的下标 给本地的变量show赋值为当前点击的下标
    changeSize(e) {
      console.log(e.target.value);
      show = e.target.value;
    },

computed: {
    ...mapState(["sizeInfo"]),
  }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值