vue图片的动态绑定

 1、就是想办法给路径前边加一个require()

            <!-- 直接写相对地址 -->
          <img src="../../../assets/logo.png" alt="" />
          <!-- 定义数据为require,双向绑定 -->
          <!-- imglogo2: require("../../../assets/logo.png"), -->
          <img :src="imglogo2" alt="" />

          <!-- 路径相同更改图片,imglogo: "logo.png", -->
          <img :src="require(`../../../assets/${imglogo}`)" alt="" />

 注意点

如果图片路径为../../../assets/logo.png或者@/assets/logo.png

data中数据形式为imglogo1: "@/assets/logo.png",

以下形式识别不了,../和@/作为数据加到require()中时,路径错误

要直接作为字符串写在require()中

<img :src="require(imglogo)" alt="" />
<img :src="require(`${imglogo1}`)" alt="" />

 data() {
    //这里存放数据
    return {
        
      imglogo: "@/assets/logo.png",
      imglogo1: "../../assets/logo.png",

      }
}

 2、动态绑定的三种方法

1、路径相同,在同一文件夹更改图片

<!-- 路径相同更改图片,imglogo: "logo.png", -->
          <img :src="require(`../../../assets/${imglogo}`)" alt="" />

 数据形式

data() {
    //这里存放数据
    return {
      imglogo: "logo.png",
        }
}

2、src可以绑定一个事件,返回值作为url路径

<!-- 绑定 methods中的事件传参,返回路径 -->
          <img :src="bindIcon(imglogo)" />

 js定义数据,处理数据

data() {
    //这里存放数据
    return {
      imglogo: "logo.png",
        }
},
//方法集合
  methods: {
  
    //获取图片地址
    bindIcon(icon) {
      return require("@/assets/" + icon);
    },
}

3、在mounted中处理变量,加上require

          <!-- 在mounted中处理变量,加上require -->
          <img :src="imglogo3" alt="" />

 js处理数据

data(){
       return{
            imglogo: "logo.png",
            imglogo3: "",
            a: "assets/",
        }

}

 //生命周期 - 挂载完成(可以访问DOM元素)
  mounted() {

    this.imglogo3 = require(`@/${this.a}${this.imglogo}`);
}

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值