欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vue动态拼接图片路径、img地址拼接问题

程序员文章站 2024-01-19 14:03:16
...

写vue写的不多,记录一下这个小坑

知识点:es6模板字符串${}

(一)需求:

根据后端传的json数组的某一字段来拼接img的src路径,动态的绑定img标签的图片,图片来源本地文件夹,如果直接利用+和{{}}来拼接路径,该路径会被加载器解析成字符串
↓json格式:根据不同的e_status拼接不同的图片
vue动态拼接图片路径、img地址拼接问题
↓本地文件夹的图片(titleicon.ico没有使用不用管)
vue动态拼接图片路径、img地址拼接问题

(二)解决方案

利用ES6的模板字符串进行拼接操作

模板字符串使用反引号 (`) 来代替普通字符串中的双引号和单引号。模板字符串可以包含特定语法(${expression})的占位符。占位符中的表达式和周围的文本会一起传递给一个默认函数,该函数负责将所有的部分连接起来。

1、反单引号怎么打出来?
将输入法调整为英文输入法,单击键盘上数字键1左边的按键。

2、用法
step1: 定义需要拼接进去的字符串变量
step2: 将字符串变量用${}包起来,再写到需要拼接的地方

核心代码:

<img :src="`imgs/${exam.e_status}.png`" />

这样就能从json数据中取到对应的字段来拼接src了,就可以显示图片
vue动态拼接图片路径、img地址拼接问题
我这里的完整代码:
vue动态拼接图片路径、img地址拼接问题

(三)别人的解决方法与反思

之前在网上搜索的方法大多是利用require包裹,但是似乎得利用cli脚手架,对于只是简单地用js引用vue道html来说,会报require未定义的错误,如果自己手动下载require.js再引入html页面中也不能解决问题会报require error(具体我没细看了)

<script type="text/javascript" src="path/js/vue.js"></script>

不过还是放一个别人利用require写的方法吧

// 最终修改,正常加载
<img :src="require(`../assets/${ss[1]}.svg`)" alt="" />
// 网络图片,这样就可以正常显示
<!-- <img :src="ss[2]" alt="" /> -->

他人的原贴:vue–dom中字符串拼接、img地址拼接问题

https://www.cnblogs.com/jry199506/p/11387761.html

ps:一开始出错还以为是自己不熟悉vue的锅,后来才发现是记错了json数组的字段了,所以如果不能根据报错找到错误,下次记得先检查数据的正确性和数据使用的正确性!