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

react+antd+vite自动引入组件、图标等

前言:

        react在使用antd的时候,也是需要每个组件都在界面上按需引入的,那能不能自动生成,按需使用呢?我们这里说一说这个。

安装插件,组件按需引入

unplugin-antd-resolver

unplugin-auto-import

npm install unplugin-antd-resolver unplugin-auto-import -D

配置:vite.config.ts

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import AutoImport from 'unplugin-auto-import/vite';
import AntdResolver from 'unplugin-antd-resolver';export default defineConfig({plugins: [react(),AutoImport({resolvers: [AntdResolver()], // 自动导入 Ant Design 的组件和 Hook}),],css: {preprocessorOptions: {less: {javascriptEnabled: true, // 必须开启,用于 antd 的 less 变量解析},},},
});

界面上使用:不用单独引入也可以使用了

return (<><Button type="primary">按钮</Button> {/* 自动引入 Button */}{message.success('成功')} {/* 自动引入 message */}</>);

图标按需引入 :unplugin-icons/resolver

@iconify/json

unplugin-icons

unplugin-auto-import

npm install @iconify/json unplugin-icons unplugin-auto-import -D
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import Icons from 'unplugin-icons/vite';
import IconsResolver from 'unplugin-icons/resolver';
import AutoImport from 'unplugin-auto-import/vite';export default defineConfig({plugins: [react(),AutoImport({resolvers: [IconsResolver({ prefix: 'Icon' }), // 图标自动导入,前缀为 Icon],}),Icons({ compiler: 'jsx', autoInstall: true }), // 图标编译为 JSX],
});

界面上使用 :直接使用图标(通过约定前缀 Icon + 图标名)

function App() {return (<><IconCarbonSun /> {/* 自动引入 Carbon 太阳图标 */}<IconMdiAccount /> {/* 自动引入 Material Design 用户图标 */}</>);
}

组合使用

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import AutoImport from 'unplugin-auto-import/vite';
import AntdResolver from 'unplugin-antd-resolver';
import Icons from 'unplugin-icons/vite';
import IconsResolver from 'unplugin-icons/resolver';export default defineConfig({plugins: [react(),AutoImport({imports: ['react'], // 自动引入 React 的 Hooksresolvers: [AntdResolver(), // Ant Design 按需导入IconsResolver({ prefix: 'Icon' }), // 图标按需导入],dts: 'types/auto-imports.d.ts', // 生成类型声明文件}),Icons({ compiler: 'jsx', autoInstall: true }), // 图标配置],css: {preprocessorOptions: {less: {javascriptEnabled: true, // antd 需要},},},
});

生成的auto.imports.d.ts

如果这个文件没有自动生成,运行下服务,重新启动就行

项目中使用源码:

vite里面的plugins

import AutoImport from 'unplugin-auto-import/vite'
import AntdResolver from 'unplugin-antd-resolver'
import IconsResolver from 'unplugin-icons/resolver'export default function setupAutoImport() {return AutoImport({resolvers: [AntdResolver(), IconsResolver()],imports: ['react', 'react-router-dom', {'react-i18next': ['initReactI18next', 'useTranslation'],}],dirs: ['src/components/**'],dts: 'types/auto-imports.d.ts',})
}

http://www.dtcms.com/a/329098.html

相关文章:

  • 适配安卓15(对应的sdk是35)
  • 单片机启动流程详细介绍
  • 开源WAF新标杆:雷池SafeLine用语义分析重构网站安全边界
  • vscode远程服务器出现一直卡在正在打开远程和连接超时解决办法
  • SpringBoot 整合 Langchain4j 系统提示词与用户提示词实战详解
  • IV模型(工具变量模型)
  • 《论文阅读》从特质到移情:人格意识多模态移情反应生成 ACL 2025
  • Dify-17: 扩展模型提供方
  • PyTorch简介
  • layui表格自定义导出数据(选中和全部数据)
  • Debian新一代的APT软件源配置文件格式DEB822详解
  • k8s中的微服务
  • CSS动态视口单位:彻底解决移动端适配顽疾,告别布局跳动
  • Prompt Engineering+AI工具链:打造个人专属的智能开发助手
  • 第六十六篇:AI模型的“口才”教练:Prompt构造策略与自动化实践
  • 从0开始跟小甲鱼C语言视频使用linux一步步学习C语言(持续更新)8.13
  • SplitLanzou安卓版(蓝奏云第三方客户端) v1.8.2 免费版
  • 云计算-实战 OpenStack 私有云运维:服务部署、安全加固、性能优化、从服务部署到性能调优(含数据库、内核、组件优化)全流程
  • 飞凌OK3568开发板QT应用程序编译流程
  • Nginx 超详细详解和部署实例
  • 大致计算服务器磁盘使用情况脚本
  • 从零到一:TCP 回声服务器与客户端的完整实现与原理详解
  • pycharm配置连接服务器
  • 解析Vue3中集成WPS Web Office SDK的最佳实践
  • 物理服务器和虚拟机在性能上的不同
  • 【opencv-Python学习笔记(3):色彩空间类型及其转换】
  • 【Abp.VNext】Abp.Vnext框架模块学习
  • 工业元宇宙:迈向星辰大海的“玄奘之路”
  • TCP客户端Linux网络编程设计详解
  • docker+nginx+keepalived+openappsec+web ui+crowdsec部署安全代理