vue实现插入图片
Vue 中插入图片的实现方法
在 Vue 项目中插入图片有多种方式,具体取决于图片的来源和存放位置。以下是几种常见的方法:
使用静态资源目录 (public)
将图片放置在 public 目录下,直接通过绝对路径引用:
<img src="/images/example.jpg" alt="示例图片">
这种方法适合不经常变动且需要直接通过 URL 访问的图片。
使用 assets 目录
将图片放置在 src/assets 目录下,通过模块系统引入:

<template>
<img :src="require('@/assets/images/example.jpg')" alt="示例图片">
</template>
或者使用 import 方式:
import exampleImg from '@/assets/images/example.jpg';
export default {
data() {
return {
imgSrc: exampleImg
}
}
}
<template>
<img :src="imgSrc" alt="示例图片">
</template>
动态绑定图片路径
当需要根据数据动态显示不同图片时:
export default {
data() {
return {
images: {
logo: require('@/assets/images/logo.png'),
banner: require('@/assets/images/banner.jpg')
}
}
}
}
<template>
<img :src="images[imageName]" :alt="imageName">
</template>
使用 base64 编码
对于小图片可以直接使用 base64 编码:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..." alt="base64图片">
使用网络图片
直接引用网络图片 URL:
<img src="https://example.com/images/example.jpg" alt="网络图片">
使用 Vue 组件封装图片
可以创建一个可复用的图片组件:
// ImageComponent.vue
<template>
<img :src="src" :alt="alt" :class="className">
</template>
<script>
export default {
props: {
src: {
type: String,
required: true
},
alt: {
type: String,
default: ''
},
className: {
type: String,
default: ''
}
}
}
</script>
使用时:
<image-component src="@/assets/images/example.jpg" alt="示例" class="custom-class"/>
注意事项
- 使用
assets目录的图片会经过 webpack 处理,适合需要构建优化的场景 public目录的图片不会经过 webpack 处理,适合大文件或需要直接引用的场景- 动态绑定路径时确保路径正确,必要时使用
require包裹 - 考虑为所有图片添加适当的
alt属性以提高可访问性






