当前位置:首页 > 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 的监听能力主要基于其响应式系统,该系统通过数据劫持和依赖收集实现。当数据变化时,系统能自动触发视图更新或执行回调函数。 核心机制:Object.definePrope…

vue实现计时

vue实现计时

Vue 实现计时功能 在 Vue 中实现计时功能可以通过多种方式完成,以下是几种常见的方法: 使用 setInterval 实现基础计时器 通过 setInterval 和 clearInterv…

vue实现旋转

vue实现旋转

Vue 实现旋转效果的方法 在 Vue 中实现旋转效果可以通过多种方式完成,以下是几种常见的方法: 使用 CSS 动画 通过 Vue 的 :class 或 :style 绑定 CSS 动画实现旋转效…

实现vue组件

实现vue组件

Vue 组件的基本实现 Vue 组件是 Vue.js 的核心特性之一,允许将 UI 拆分为独立、可复用的模块。以下是实现 Vue 组件的几种方式: 单文件组件 (SFC) 使用 .vue 文件格式…

vue实现主页

vue实现主页

Vue 实现主页的基本步骤 创建一个 Vue 主页通常涉及以下几个关键步骤,从项目初始化到页面布局和功能实现。 初始化 Vue 项目 使用 Vue CLI 或 Vite 初始化项目。Vue CLI…

vue实现遮罩

vue实现遮罩

Vue 实现遮罩层的方法 在 Vue 中实现遮罩层可以通过多种方式完成,以下是几种常见的方法: 方法一:使用 v-show 或 v-if 控制显示 通过 Vue 的指令动态控制遮罩层的显示与隐…