vue实现展示图片
在Vue中展示图片的方法
使用<img>标签直接引入本地图片
将图片文件放在public或assets目录下,通过相对路径引用。推荐将静态资源放在public目录,打包时不会被处理。
<template>
<!-- 引用public目录下的图片 -->
<img src="/images/example.jpg" alt="示例图片">
<!-- 动态绑定图片路径 -->
<img :src="imagePath" alt="动态图片">
</template>
<script>
export default {
data() {
return {
imagePath: '/images/dynamic.jpg'
}
}
}
</script>
使用require引入assets目录图片
当图片需要被webpack处理时(如压缩、hash命名),可以放在assets目录并通过require引入。

<template>
<img :src="localImage" alt="本地图片">
</template>
<script>
export default {
data() {
return {
localImage: require('@/assets/images/local.jpg')
}
}
}
</script>
动态加载图片
根据条件或变量动态切换不同图片。

<template>
<img :src="getImageUrl(imageName)" alt="动态加载">
</template>
<script>
export default {
data() {
return {
imageName: 'default'
}
},
methods: {
getImageUrl(name) {
return require(`@/assets/images/${name}.jpg`)
}
}
}
</script>
显示Base64编码图片
直接使用Base64字符串作为图片源。
<template>
<img :src="base64Image" alt="Base64图片">
</template>
<script>
export default {
data() {
return {
base64Image: 'data:image/png;base64,iVBORw0KGgo...'
}
}
}
</script>
使用第三方图片组件
对于更复杂的需求,可以使用如vue-lazyload实现懒加载。
// main.js
import VueLazyload from 'vue-lazyload'
Vue.use(VueLazyload, {
preLoad: 1.3,
loading: 'loading.gif',
attempt: 1
})
<template>
<img v-lazy="lazyImage" alt="懒加载图片">
</template>
注意事项
- 路径区分:
public目录文件使用绝对路径(以/开头),assets目录使用相对路径 - 动态
require时变量需包含完整路径信息 - 生产环境建议对图片进行压缩优化
- 考虑添加
alt属性提升可访问性 - 大图建议使用懒加载技术
通过以上方法可以灵活地在Vue项目中实现各种图片展示需求。






