当前位置:首页 > VUE

vue实现图片显示

2026-01-19 19:37:10VUE

使用 <img> 标签直接显示图片

在 Vue 模板中直接使用 HTML 的 <img> 标签,通过 src 属性绑定图片路径。静态图片可以直接写路径,动态图片需使用 Vue 的数据绑定。

<template>
  <!-- 静态图片 -->
  <img src="@/assets/static-image.jpg" alt="Static Image">

  <!-- 动态图片 -->
  <img :src="dynamicImagePath" alt="Dynamic Image">
</template>

<script>
export default {
  data() {
    return {
      dynamicImagePath: require('@/assets/dynamic-image.jpg')
    }
  }
}
</script>

通过 require 动态加载图片

当图片路径需要动态计算时,使用 require 确保 Webpack 正确处理模块依赖。适用于通过变量拼接路径的场景。

vue实现图片显示

<template>
  <img :src="imageUrl" alt="Dynamic Required Image">
</template>

<script>
export default {
  data() {
    return {
      imageName: 'example',
      imageUrl: require(`@/assets/${this.imageName}.jpg`)
    }
  }
}
</script>

使用 v-for 循环显示多张图片

结合 v-for 指令渲染图片列表,适用于从数组或 API 获取的多张图片展示。

vue实现图片显示

<template>
  <div v-for="(item, index) in imageList" :key="index">
    <img :src="item.url" :alt="item.name">
  </div>
</template>

<script>
export default {
  data() {
    return {
      imageList: [
        { url: require('@/assets/image1.jpg'), name: 'Image 1' },
        { url: require('@/assets/image2.jpg'), name: 'Image 2' }
      ]
    }
  }
}
</script>

处理图片加载失败事件

通过 @error 监听图片加载失败事件,可设置默认占位图或错误处理逻辑。

<template>
  <img 
    :src="imageUrl" 
    alt="Fallback Image"
    @error="handleImageError"
  >
</template>

<script>
export default {
  data() {
    return {
      imageUrl: 'https://example.com/potential-broken-link.jpg'
    }
  },
  methods: {
    handleImageError(e) {
      e.target.src = require('@/assets/fallback.jpg')
    }
  }
}
</script>

使用第三方组件优化图片加载

借助如 vue-lazyload 库实现懒加载,提升页面性能。需先安装依赖(npm install vue-lazyload)。

<template>
  <img v-lazy="lazyImageUrl" alt="Lazy Loaded Image">
</template>

<script>
import VueLazyload from 'vue-lazyload'
import Vue from 'vue'

Vue.use(VueLazyload, {
  loading: require('@/assets/loading-spinner.gif')
})

export default {
  data() {
    return {
      lazyImageUrl: 'https://example.com/large-image.jpg'
    }
  }
}
</script>

注意事项

  • 静态图片放在 public 目录时直接使用绝对路径(如 /images/photo.jpg),无需 require
  • 动态路径中使用 require 时,变量部分必须是明确的可推断路径,否则 Webpack 无法打包。
  • 生产环境需确保图片资源路径正确,建议使用相对路径或配置正确的 publicPath

标签: 图片vue
分享给朋友:

相关文章

vue 表格实现

vue 表格实现

Vue 表格实现方法 在 Vue 中实现表格功能可以通过多种方式完成,以下介绍几种常见的方法: 使用原生 HTML 表格 最简单的表格可以通过 Vue 模板中的原生 HTML 表格元素实现: &l…

vue实现3d宇宙

vue实现3d宇宙

Vue实现3D宇宙效果 使用Three.js库 Three.js是一个强大的JavaScript 3D库,可以轻松集成到Vue项目中。安装Three.js依赖: npm install three…

vue实现拖放

vue实现拖放

Vue 实现拖放功能 Vue 中实现拖放功能通常可以通过 HTML5 的原生拖放 API 或第三方库(如 vuedraggable)来实现。以下是两种方法的详细说明。 使用 HTML5 原生拖放 A…

vue 实现豆瓣

vue 实现豆瓣

以下是基于 Vue 实现豆瓣电影类功能的实现方案,涵盖核心模块和技术要点: 数据获取与 API 调用 使用豆瓣开放 API(需注意调用频率限制)或第三方代理接口 推荐 axios 进行异步请求,配合…

vue el 实现

vue el 实现

Vue 中使用 Element UI (el) 的实现方法 Element UI 是一个基于 Vue 的组件库,提供丰富的 UI 组件,常用于快速构建企业级中后台产品。以下介绍 Vue 项目中集成和使…

vue实现看板

vue实现看板

Vue 实现看板功能 使用 Vue 实现看板功能可以通过组件化开发、状态管理和拖拽库结合完成。以下是一个完整的实现方案: 基础项目结构 src/ ├── components/ │ ├── Ka…