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;
};
相关推荐
郑州光合科技余经理8 分钟前
实战分享:如何构建东南亚高并发跑腿配送系统
java·开发语言·javascript·spring cloud·uni-app·c#·php
June bug11 分钟前
【Vue】EACCES: permission denied 错误
前端·javascript·vue.js
陈随易12 分钟前
PostgreSQL v18发布,新增AIO uuidv7 OAuth等功能
前端·后端·程序员
一只小阿乐16 分钟前
react 中的组件性能优化
前端·javascript·react.js·react组件性能优化
柯南二号22 分钟前
【大前端】【iOS】iOS 真实项目可落地目录结构方案
前端·ios
肉清27 分钟前
linux自用命令
linux·服务器·前端
weibkreuz34 分钟前
初始React@1
前端·react.js·前端框架
xiaoxue..38 分钟前
二叉树深度解析:从基础结构到实战应用
javascript·数据结构·面试
Coder_Boy_1 小时前
前端和后端软件系统联调经典问题汇总
java·前端·驱动开发·微服务·状态模式
小皮虾1 小时前
别再封装 Axios 了!用 RPC 像调用本地函数一样写接口(支持 Vue/React/Node)
前端·rpc·全栈