<div v-for="(item,index) in list" :key="index">
    <el-image :src="item.img"></el-image>
</div>

最开始的需求类似上图,在v-for中实现图片显示,但是实际得到的效果是加载失败

 查了以后发现,如果要实现动态加载图片,应该用require包裹住路径

<div v-for="(item,index) in list" :key="index">
    <el-image :src="require(item.img)"></el-image>
</div>

但是结果还是差强人意,后来发现问题在require里面必须是一个静态路径,不能是一个变量,最终解决办法是

<div v-for="(item,index) in list" :key="index">
    <el-image :src="require('../assest/image/' + item.img)"></el-image>
</div>

只要用字符串与变量拼接的方式就可以解决,查了资料,本质上是静态资源跟动态资源的区别......

这里放上一个博主链接解释的很详细 有兴趣可以了解一下

在vue中动态的引入图片为什么要使用require - Silence的文章 - 知乎 https://zhuanlan.zhihu.com/p/622465389

Logo

新一代开源开发者平台 GitCode,通过集成代码托管服务、代码仓库以及可信赖的开源组件库,让开发者可以在云端进行代码托管和开发。旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐