v-for循环中使用require/import关键字引入本地图片的几种方式

 更新时间:2021年09月03日 09:57:23   作者:水冗水孚  
在做项目的过程中,模版相同,可是不标题和图片不同,循环标题我们知道可以用v-for循环,可是该怎么引入本地图片呢?下面这篇文章主要给大家介绍了v-for循环中使用require/import关键字引入本地图片的几种方式,需要的朋友可以参考下

问题描述

我们做项目中,常常需要把图片呈现到页面上,一般来说有以下几种方式

方式一(后端返回图片URL)

这种方式就是后端返回图片的url地址,我们直接img标签的src属性绑定imgUrl即可。如下代码:

<div class="item" v-for="(item, index) in apiArr" :key="index">
    <!-- apiArr是后端返回的数据,其中的每一项中都有一个imgUrl属性,存储的是图片的url地址 -->
    <img :src="item.imgUrl" alt="">
</div>

方式二(前端使用require)

第二种方式,把图片文件存储到前端里,后端只返回图片的名字(或不返回图片数据),代码举例如下:

代码附上

<template>
  <div class="wrap">
    <div class="item" v-for="(item, index) in apiArr" :key="index">
      <div class="imgWrap">
        <!-- require引入图片文件模块 -->
        <img :src="require(`@/assets/img/${item.imgTitle}.png`)" alt="" />
        <!-- 最后就变成这样的了就能正常显示了 <img src="@/assets/img/first.png" alt=""> -->
      </div>
      <div class="infoWrap">
        <div><span class="bloder">名次:</span> {{ item.title }}</div>
        <div><span class="bloder">得分:</span> {{ item.score }}</div>
      </div>
    </div>
    
  </div>
</template>

<script>
export default {
  data() {
    return {
      apiArr: [],
    };
  },
  mounted() {
    // 假设apiArr是我们发请求后端返回的数据,里面的imgTitle属性存储的是图片的名字
    // 通过require关键字引入,会自动到指定路径下的文件中寻找对应的图片文件加载出来
    this.apiArr = [
      {
        title: "冠军",
        score: "98.8",
        imgTitle: "first",
      },
      {
        title: "亚军",
        score: "97.9",
        imgTitle: "second",
      },
      {
        title: "季军",
        score: "96.2",
        imgTitle: "third",
      },
    ];
  },
};
</script>

效果图如下

项目文件结构图

方式三(前端使用import)

代码附上

<template>
  <div class="wrap">
    <div class="item" v-for="(item, index) in apiArr" :key="index">
      <div class="imgWrap">
        <img :src="item.imgTitle" alt="" />
      </div>
      <div class="infoWrap">
        <div><span class="bloder">名次:</span> {{ item.title }}</div>
        <div><span class="bloder">得分:</span> {{ item.score }}</div>
      </div>
    </div>
  </div>
</template>

<script>
// import 引入图片
import first from "@/assets/img/first.png";
import second from "@/assets/img/second.png";
import third from '@/assets/img/third.png'
export default {
  data() {
    return {
      apiArr: [
        {
          title: "冠军",
          score: "98.8",
          imgTitle: first, // 使用引入的图片
        },
        {
          title: "亚军",
          score: "97.9",
          imgTitle: second, // 使用引入的图片
        },
        {
          title: "季军",
          score: "96.2",
          imgTitle: third, // 使用引入的图片
        },
      ],
    };
  },
};
</script>

效果图和项目文件结构图同上,这里不赘述

总结

ES6中import方式引入,和commonjs中require方式引入图片都可以,不过我个人更加推荐使用require方式,因为略为灵活点

到此这篇关于v-for循环中使用require/import关键字引入本地图片的文章就介绍到这了,更多相关v-for引入本地图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • ES6 Proxy实现Vue的变化检测问题

    ES6 Proxy实现Vue的变化检测问题

    Vue3.0将采用ES6 Proxy的形式重新实现Vue的变化检测,在官方还没给出新方法之前,我们先实现一个基于Proxy的变化检测。感兴趣的朋友跟随小编一起看看吧
    2019-06-06
  • vue学习笔记之slot插槽用法实例分析

    vue学习笔记之slot插槽用法实例分析

    这篇文章主要介绍了vue学习笔记之slot插槽用法,结合实例形式对比分析了vue使用slot插槽的相关操作技巧与注意事项,需要的朋友可以参考下
    2020-02-02
  • vue使用自定义指令实现一键复制功能

    vue使用自定义指令实现一键复制功能

    在Vue中,通过自定义指令v-copy和document.execCommand方法,可以实现点击按钮复制内容到剪贴板的功能,适用于处理长文本或多行文本的复制需求,而readonly属性可避免内容被修改和移动设备上的虚拟键盘干扰,感兴趣的朋友一起看看吧
    2024-09-09
  • vue2更改data里的变量不生效时,深层更改data里的变量问题

    vue2更改data里的变量不生效时,深层更改data里的变量问题

    这篇文章主要介绍了vue2更改data里的变量不生效时,深层更改data里的变量问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • vue-cli创建的项目,配置多页面的实现方法

    vue-cli创建的项目,配置多页面的实现方法

    下面小编就为大家分享一篇vue-cli创建的项目,配置多页面的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)

    elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)

    小编最近遇到这样的需求,当点击一个按钮可以变换里面字的内容,刚开始还真是一头雾水,不知所措。仔细想想屡屡思绪,很容易的解决了。接下来通过本文给大家介绍elementUI Vue 单个按钮显示和隐藏的变换功能,需要的朋友可以参考下
    2018-09-09
  • vue 使用html2canvas将DOM转化为图片的方法

    vue 使用html2canvas将DOM转化为图片的方法

    这篇文章主要介绍了vue 使用html2canvas将DOM转化为图片的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • vue运行项目时network显示unavailable的问题及解决

    vue运行项目时network显示unavailable的问题及解决

    这篇文章主要介绍了vue运行项目时network显示unavailable的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue CLI 3搭建vue+vuex最全分析(推荐)

    Vue CLI 3搭建vue+vuex最全分析(推荐)

    这篇文章主要介绍了Vue CLI 3搭建vue+vuex最全分析(推荐),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • vue3的二维码组件vue3-next-qrcode

    vue3的二维码组件vue3-next-qrcode

    这篇文章主要为大家介绍了vue3的二维码组件vue3-next-qrcode示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09

最新评论