vue3:img使用方法设置动态路径

网上有很多方法,试了一遍,只有下面这种方法是最简单并且合适我的。

我的情况特殊在icon的名字需要通过方法获取,不是简单的设置成element.icon就可以的。

html 复制代码
<img class="selectedItem-icon"
                  :src="require('@/assets/icon/components/' + getIcon(element.cptKey) + '.svg')" />
javascript 复制代码
getIcon(cptKey) {
      let icon = ''
      const index = this.optionsList.findIndex(item => item.cptKey === cptKey)
      if (index > -1) {
        icon = this.optionsList[index].icon ? this.optionsList[index].icon : 'default'
      } else {
        icon = 'default'
      }
      return icon;
    }

特别要注意,在get方法里,不要return路径,然后试图把路径直接传给html里的require,这种方式会报错,必须得在html里拼接路径。

return new URL(`../assets/img/${image}`, import.meta.url).href 的方式我也试过,会报Not allowed to load local resource的错。

参考:

Vue3使用src动态引入本地图片的详细步骤_vue.js_脚本之家

相关推荐
涔溪40 分钟前
Ecmascript(ES)标准
前端·elasticsearch·ecmascript
榴莲千丞1 小时前
第8章利用CSS制作导航菜单
前端·css
奔跑草-1 小时前
【前端】深入浅出 - TypeScript 的详细讲解
前端·javascript·react.js·typescript
羡与1 小时前
echarts-gl 3D柱状图配置
前端·javascript·echarts
guokanglun1 小时前
CSS样式实现3D效果
前端·css·3d
咔咔库奇1 小时前
ES6进阶知识一
前端·ecmascript·es6
前端郭德纲1 小时前
浏览器是加载ES6模块的?
javascript·算法
JerryXZR1 小时前
JavaScript核心编程 - 原型链 作用域 与 执行上下文
开发语言·javascript·原型模式
帅帅哥的兜兜1 小时前
CSS:导航栏三角箭头
javascript·css3
渗透测试老鸟-九青2 小时前
通过投毒Bingbot索引挖掘必应中的存储型XSS
服务器·前端·javascript·安全·web安全·缓存·xss