react用useImages读取图片,方便backgroundImage

注意import.meta.glob中定义的文件夹路径,视情况而定,可能是assets或images

复制代码
import { useMemo } from "react";

export default function useImages() {
  // 扫描 images 目录及其子目录下的所有图片
  const modules = import.meta.glob('@/assets/**/*.{png,jpg,jpeg,svg}', { eager: true });

  const images = useMemo(() => {
    const map = {};
    Object.entries(modules).forEach(([path, mod]) => {
      // 提取相对路径,例如 icons/icon1.png
      const relativePath = path.split('/images/')[1];
      map[relativePath] = mod.default;
    });
    return map;
  }, [modules]);

  return images;
}

使用方法:

复制代码
import useImages from "@/hooks/useImages";

  const uimages = useImages()





<div style={{ backgroundImage: "url(" + uimages['bgred.png'] + ")" }}>

<img src={uimages['recommed.png']} className="w-7 ml-[10px]" />

例子:

相关推荐
袁煦丞9 分钟前
MoneyPrinterTurbo一键生成短视频:cpolar内网穿透实验室第644个成功挑战
前端·程序员·远程工作
代码小学僧11 分钟前
让 AI 真正帮你开发:前端 MCP 实用技巧分享
前端
晴殇i19 分钟前
前端鉴权新时代:告别 localStorage,拥抱更安全的 JWT 存储方案
前端·javascript·面试
Json____21 分钟前
使用node Express 框架框架开发一个前后端分离的二手交易平台项目。
java·前端·express
since �21 分钟前
前端转Java,从0到1学习教程
java·前端·学习
码农刚子28 分钟前
ASP.NET Core Blazor简介和快速入门 二(组件基础)
javascript·后端
深思慎考30 分钟前
RabbitMQ 入门:基于 AMQP-CPP 的 C++ 实践指南与二次封装
开发语言·c++·分布式·rabbitmq·api
catchadmin37 分钟前
PHP8.5 的新 URI 扩展
开发语言·后端·php
小奋斗38 分钟前
面试官:[1] == '1'和[1] == 1结果是什么?
前端·面试
萌萌哒草头将军39 分钟前
尤雨溪宣布 oxfmt 即将发布!比 Prettier 快45倍 🚀🚀🚀
前端·webpack·vite