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_脚本之家

相关推荐
夏沫mds几秒前
基于 Flask 与Vue 3 及协同过滤算法的智能电影推荐系统
vue.js·python·flask·协同过滤
喔烨鸭2 分钟前
antdv编辑表格,根据选择时间区间展示动态列
前端·vue·表格编辑
天天向上10243 分钟前
el-table 解决一渲染数据页面就卡死
前端·javascript·vue.js
bjzhang754 分钟前
使用 HTML + JavaScript 实现单会议室周日历管理系统
前端·javascript·html
weixin_431600447 分钟前
开发中遇到需要对组件库组件结构调整的两种落地方案实践
前端·组件库
Code知行合壹8 分钟前
Vue3入门
前端·javascript·vue.js
LawrenceLan9 分钟前
17.Flutter 零基础入门(十七):StatelessWidget 与 State 的第一次分离
开发语言·前端·flutter·dart
酷酷的鱼14 分钟前
Expo Router vs 原生React Native 完全对比指南
javascript·react native·react.js
桃子叔叔16 分钟前
react-wavesurfer录音组件2:前端如何处理后端返回的仅Blob字段
前端·react.js·状态模式