vite+v3批量一次性引入本地图片(简单做法)

效果:

开发步骤:

  • 在assets/fileTypes文件夹中将你需要的png图片导入,并使用文件类型来命名图片(如docx.png)
  • 使用import.meta.globEager将assets/fileTypes下所有的png图片引入
  • 通过遍历Object.keys(files)使用正则匹配出每个图片的名称,用文件类型做name,文件路径做图片路径创建一个数组
  • 在img图标的src定义方法,返回文件路径即可

文件类型图片库:

File Types Icon Pack | Flat | 150 .SVG Icons - Page 3

File Types Icon Pack | Outline Color | 150 .SVG Icons - Page 3

完整代码:

javascript 复制代码
import noneImg from "@/assets/fileTypes/none.png";

<img class="mr5" :src="getImgSrc(file)" />


// 统一获取所有文件类型图片
const fileTypes = ref([]);
const files = import.meta.globEager("@/assets/fileTypes/*.png");
Object.keys(files).forEach((fileName) => {
  let fileType = fileName.match(/([^/]*?)\.[^/.]+$/)[1]; //用正则匹配出文件名称
  fileTypes.value.push({
    name: fileType,
    iconSrc: files[fileName].default,
  });
});

const getImgSrc = (file) => {
  let findImg = noneImg; // 没匹配到就用默认的图片
  fileTypes.value.forEach(
    (item) => item.name === file.attachType && (findImg = item.iconSrc)
  );
  return findImg;
};
相关推荐
cnxy1885 分钟前
Python Web开发新时代:FastAPI vs Django性能对比
前端·python·fastapi
神仙姐姐QAQ6 分钟前
vue3更改.el-dialog__header样式不生效
前端·javascript·vue.js
脾气有点小暴7 分钟前
uniapp真机调试无法连接
前端·uni-app
AI_56789 分钟前
Vue.js 深度开发指南:从数据绑定到状态管理的最佳实践
前端·javascript·vue.js
Irene19919 分钟前
Sass常用语法总结
前端·sass
程序员爱钓鱼10 分钟前
Node.js 博客系统实战(一):项目需求分析
前端·后端·node.js
阿星AI工作室11 分钟前
魔改豆包输入法变电脑版,立即拥有千元AI语音输入法typeless平替
前端·人工智能
前端-文龙刚12 分钟前
浅记Vue3中 ref 和 reactive 是两种主要的响应式数据声明方式,它们有以下主要区别
前端·javascript·vue.js
小先生81214 分钟前
关于vue-element-plus-admin的mini分支踩坑集锦
前端·vue.js·前端框架·c#
hhcccchh14 分钟前
学习vue第十天 V-Model学习指南:双向绑定的魔法师
前端·vue.js·学习