02下拉框切换图片

下拉框切换不同图片

1. 页面布局
    <div class="MonthPollution">
      <!-- 定义图片路由变量 -->
      <img :src="ImgUrl" alt="" />
      <!-- 定义响应函数,进行切换图片路由 -->
      <select class="MonthSe" v-model="selected" @change="change">
        <!-- 遍历option数组,通过数组内容决定图片路由 -->
        <option v-for="Month in Months" :key="Month.value" :value="Month.index">
          {{ Month.index }}月份
        </option>
      </select>
    </div>
2. 方法实现
export default {
  name: "Visual",
  data() {
    return {
        //默认路由
      ImgUrl: require("../assets/images/12.png"),
        //option数组,用来切换图片路由
      Months: [
        {index: "1",value: "/images/1.png",},{index: "2",value: "/images/2.png",},
        {index: "3",value: "/images/3.png",},{index: "4",value: "/images/4.png",},
        {index: "5",value: "/images/5.png",},{index: "6",value: "/images/6.png",},
        {index: "7",value: "/images/7.png",},{index: "8",value: "/images/8.png",},
        {index: "9",value: "/images/9.png",},{index: "10",value: "/images/10.png",},
        {index: "11",value: "/images/11.png",},{index: "12",value: "/images/12.png",},
      ],
    };
  },
  methods: {
    change() {
      console.log(this.selected);
      var myUrl = this.Months[this.selected - 1].value;
      console.log(myUrl);
      this.ImgUrl = require("../assets" + myUrl);
    },
};
</script>
3. 实现效果

在这里插入图片描述

4. 出现的问题
  • 图片路由切换问题

由于切换图片路由时,需要使用require(“path”),如果path是一个变量,require需要对一个常量进行解析,因此可以采取路径拼接的形式进行绑定。

//之前定义的形式,会导致图片解析错误
Months: [
        {
          index: "1",
          value: "../assets/images/1.png",
        },
    ]
//拿出一部分路径,其他路径通过拼接的形式
Months: [
        {
          index: "1",
          value: "/images/1.png",
        },
    ]

methods: {
    change() {
      console.log(this.selected);
      var myUrl = this.Months[this.selected - 1].value;
      console.log(myUrl);
      //拼接的形式,能够得到正常解析的图片
      this.ImgUrl = require("../assets" + myUrl);
      //会导致解析错误的形式
      this.ImgUrl = require(myUrl);
    },
  • select下拉框的使用

v-model是用来获取当前选中对象的value值的,每选一个item,selected会变成item.value,change是下拉框的响应函数,可以通过选中值的不同对data中的变量进行修改,v-for是用来遍历数组,然后定义key和value值

      <select class="MonthSe" v-model="selected" @change="change">
        <option v-for="Month in Months" :key="Month.value" :value="Month.index">
          {{ Month.index }}月份
        </option>
      </select>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值