当前位置: 首页 > news >正文

vite+vue3实现动态路径导入

最近在做一个项目有个需求: 项目图片分为英语,中文,德语 ,我将这些图片存放到/image/language/下面的每个语言的文件夹内,如en,zh-cn文件夹下面存放对应的语言的图片,如果在代码里面写路径的话,除了要写一堆路径还要判断不同的语言,非常麻烦,但是在vue3+vite里面import导入的是加载时的静态文件,require在vite里面使用不了,但是如果在代码里面html模版里面写一堆判断也不好,我翻了vite文档,找到了如下方法,可以动态加载对应图片,解决了我的问题,代码如下:

<script setup>
import { ref, reactive, onMounted } from "vue";
import { useI18n } from 'vue-i18n';
const { locale } = useI18n();
const languageBag = ref("")// 解析字符串路径动态构建图片路径
const imagePath = (fileName) => {// 动态导入图片const imgUrl = new URL(`../assets/image/language/${languageBag.value}/accumulatedExercise/${fileName}.png`,import.meta.url).href;console.log("imgUrl", imgUrl); // 打印结果: http://192.168.1.92:8080/src/assets/image/language/en/accumulatedExercise/oneDayTitle.pngreturn imgUrl;
};// 绑定的是字符串,不会被url解析,也就不会被显示到页面上
const url_one = ref("@/assets/image/language/en/accumulatedExercise/oneDayImg.png");// 解析字符串路径动态构建图片路径,可以被展示到页面上面
const url_two = ref(null);onMounted(()=>{// 获取当前语言languageBag.value = locale.value// 设置对应路径url_two.value = imagePath("oneDayImg");
})
</script><template><div class=""><!-- 直接使用原生渲染图片 --><img src="@/assets/image/language/en/accumulatedExercise/oneDayImg.png" alt="直接使用原生渲染图片"/><!-- 使用模版绑定进行渲染,这种方式只是绑定了字符串,不会被解析为真实路径 --><img :src="url_one" alt="使用模版绑定进行渲染" /><!-- 动态加载静态图片路径,将路径进行了url的解析,使其能被渲染出来 --><img :src="url_two" alt="动态加载静态图片路径" /></div>
</template><style scoped lang="scss"></style>
http://www.lryc.cn/news/458875.html

相关文章:

  • JAVA——File类
  • 掌握Postman,开启API测试新纪元!
  • JAVA-数据结构-排序
  • 初识数据结构--时间复杂度 和 空间复杂度
  • Ubuntu QT 交叉编译环境搭建
  • C语言中缓冲区底层实现以及数据输入的处理
  • RocketMQ事务消息原理
  • 【Java】IntelliJ IDEA开发环境安装
  • Go语言中的通道 (Channel) 实践:Goroutine之间的通信
  • 常用类(二)--String类的简单总结
  • Spring Boot开发:从入门到精通
  • 《数据结构》--队列【各种实现,算法推荐】
  • 面试八股文对校招的用处有多大?--GDB篇
  • Unity用VS打开FGUI脚本变成杂项怎么处理?
  • 交叉熵损失函数(Cross-Entropy Loss Function)解释说明
  • 和外部机构API交互如何防止外部机构服务不可用拖垮调用服务
  • 自动猫砂盆真的有必要吗?买自动猫砂盆不看这四点小心害死猫。
  • 国外解压视频素材哪里找?五个海外解压视频素材网站推荐
  • Android一个APP里面最少有几个线程
  • 位操作解决数组的花样遍历
  • 【面试宝典】深入Python高级:直戳痛点的题目演示(下)
  • Hive数仓操作(十七)
  • 工业和自动化领域常见的通信协议
  • 连夜爆肝收藏各大云服务新老用户优惠活动入口地址(内含免费试用1个月的地址),适用于小白,大学生,开发者,小企业老板....
  • SpringBoot+Redis+RabbitMQ完成增删改查
  • 【系统集成中级】线上直播平台开发项目质量管理案例分析
  • 浪潮信息领航边缘计算,推动AI与各行业深度融合
  • Koa2项目实战3 (koa-body,用于处理 HTTP 请求中的请求体)
  • 复盘20241012
  • 泊松流负载均衡控制