当前位置:首页 > 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 正确处理模块依赖。适用于通过变量拼接路径的场景。

<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 获取的多张图片展示。

<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)。

vue实现图片显示

<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实现3d宇宙

vue实现3d宇宙

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

vue实现pie

vue实现pie

Vue 实现饼图 在 Vue 中实现饼图通常可以通过第三方图表库(如 ECharts、Chart.js 或 Highcharts)来完成。以下是使用 ECharts 和 Chart.js 的两种常见方…

vue实现开关

vue实现开关

Vue 实现开关组件的方法 使用原生HTML和Vue数据绑定 通过v-model绑定复选框的checked状态,结合CSS样式实现开关效果: <template> <label…

vue 实现图钉

vue 实现图钉

实现图钉效果的步骤 在Vue中实现图钉(固定位置)效果,可以通过CSS的position: sticky属性或监听滚动事件动态修改元素样式。以下是两种常见方法: 方法一:使用CSS的position…

vue实现抽屉

vue实现抽屉

Vue 实现抽屉组件 抽屉组件是一种常见的 UI 模式,通常用于从屏幕边缘滑出内容。以下是几种实现抽屉的方法: 使用 Vue 原生实现 创建一个基本的抽屉组件,利用 Vue 的过渡和条件渲染功能。…

vue实现字幕

vue实现字幕

Vue 实现字幕功能 在 Vue 中实现字幕功能可以通过动态绑定数据和 CSS 动画来实现。以下是具体实现方法: 1. 基础字幕组件 创建一个字幕组件,通过 v-model 或 props 接收字…