vue如何动态绑定img的src属性(v-bind)

目录
  • 动态绑定img的src属性(v-bind)
    • 解决办法
  • vue添加img的src地址 v-bind

    动态绑定img的src属性(v-bind)

    今天遇到一个特别坑爹问题,页面中使用img动态绑定图片路径时总是不显示。(处理前的代码)

    <div class="prod-content">
      <div class="prod-item" v-for="(item,index) in Merchant" :key="index">
        <img :src="item.imgUrl" alt="">
        <span>{{item.name}}</span>
      </div>
    </div>
    Merchant:[
        {imgUrl:'../../assets/image/凯叔讲故事.png',name:'凯叔讲故事'},
        {imgUrl:'../../assets/image/樊登读书.png',name:'樊登读书'},
        {imgUrl:'../../assets/image/QQ音乐.png',name:'QQ音乐'},
        {imgUrl:'../../assets/image/滴滴出行.png',name:'滴滴出行 '},
        {imgUrl:'../../assets/image/沃尔玛.png',name:'沃尔玛'},
        {imgUrl:'../../assets/image/星巴克.png',name:'星巴克'},
        {imgUrl:'../../assets/image/爱奇艺.png',name:'爱奇艺'},
        {imgUrl:'../../assets/image/腾讯视频.png',name:'腾讯视频'},
        {imgUrl:'../../assets/image/优酷.png',name:'优酷'},
        {imgUrl:'../../assets/image/携程.png',name:'携程'},
      ],

    解决办法

    图片链接是需要通过 require包裹。这样图片就可以正常显示啦。(网络请求的数据应该做相应的处理) 

    *** 图片的路径不要出行中文,这里只是做演示

    Merchant:[
      {imgUrl:require('../../assets/image/凯叔讲故事.png'),name:'凯叔讲故事'},
      {imgUrl:require("../../assets/image/樊登读书.png"),name:'樊登读书'},
      {imgUrl:require("../../assets/image/QQ音乐.png"),name:'QQ音乐'},
      {imgUrl:require("../../assets/image/携程.png"),name:'携程'},
      {imgUrl:require("../../assets/image/滴滴出行.png"),name:'滴滴出行'},
      {imgUrl:require("../../assets/image/沃尔玛.png"),name:'沃尔玛'},
      {imgUrl:require("../../assets/image/星巴克.png"),name:'星巴克'},
      {imgUrl:require("../../assets/image/爱奇艺.png"),name:'爱奇艺'},
      {imgUrl:require("../../assets/image/腾讯视频.png"),name:'腾讯视频'},
      {imgUrl:require("../../assets/image/优酷.png"),name:'优酷'},
    ],

    vue添加img的src地址 v-bind

    vue获取数据用{{ a }}

    但是放在img标签的src里面不被解析

    按照上述用法

    html部分

     <div id="test2">
            <img src="{{ url }}" alt="">
        </div>

    js部分

     const vm1 = new Vue({
                el: '#test2',
                data: {
                    url: "a.jpg",
                }
            })

    这样的话  控制台会报错  img的地址不会被解析

    正确的用法  通过v-bind进行绑定

     <div id="test2">
            <img v-bind:src="url" alt="">
        </div>

    这样在进行输出的时候,就会解析url

    如果标签内有很多属性的话,v-bind就需要写很多,看起来就会显得非常乱

    vue还提供了一个简写,就是在属性前面加个 冒号 ,例如 :src='url'  ,同样可以解决上面的问题

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

    本文转自网络,如有侵权请联系客服删除。