【Vue】Vue3+Vite 实现 SVG 组件自动加载 icons 目录下所有文件

Vue3+ts+vite项目中使用vite-plugin-svg-icons插件处理svg,vue3项目vite中使用svg 在vite脚手架中配置对svg的处理 阅读详情

1. 安装依赖插件 vite-plugin-svg-icons

vite-plugin-svg-icons 用于生成 svg 雪碧图。
特点:
1.预加载 在项目运行时就生成所有图标,只需操作一次 dom
2.高性能 内置缓存,仅当文件被修改时才会重新生成

vite-plugin-svg-icons 官方文档

pnpm add vite-plugin-svg-icons

2. 安装 fast-glob

该软件包提供了遍历文件系统的方法,并根据Unix Bash shell使用的规则返回与一组定义的指定模式匹配的路径名,并进行了一些简化,同时以任意顺序返回结果。快速、简单、有效。

fast-glob NPM 文档

pnpm add fast-glob

3. 配置 vite.config.ts

import { defineConfig } from 'vite'
import path from "path";
import {createSvgIconsPlugin} from 'vite-plugin-svg-icons'; // vite-plugin-svg-icons 用于自动导入 svg 图标

export default defineConfig({
  plugins: [
	createSvgIconsPlugin({
		// 需要自动导入的 svg 文件目录(可自行修改)
		iconDirs: [path.resolve(process.cwd(), "src/assets/icons")],
		// 执行icon name的格式(可自行修改)
		symbolId: "icon-[dir]-[name]",
		// 更多配置请参考:https://github.com/vbenjs/vite-plugin-svg-icons/blob/HEAD/README.zh_CN.md
	}),
  ]
});

4. 在 main.ts 入口注册脚本

import "virtual:svg-icons-register"; // vite-plugin-svg-icons 插件注册,不引入会导致svg图标无法正常显示

5. 封装 SvgIcon 组件

可根据自己实际项目需要自行修改组件逻辑

<template>
	<svg :style="iconStyle" aria-hidden="true">
		<use :xlink:href="symbolId" />
	</svg>
</template>

<script setup lang="ts" name="SvgIcon">
import { computed, CSSProperties } from "vue";

interface SvgProps {
	name: string; // 图标的名称(Svg 文件名) ==> 必传
	prefix?: string; // 图标的前缀 ==> 非必传(默认为"icon")
	iconStyle?: CSSProperties; // 图标的样式 ==> 非必传
}
// 接收父组件参数并设置默认值
const props = withDefaults(defineProps<SvgProps>(), {
	prefix: "icon",
	iconStyle: () => ({ width: "50px", height: "50px" }),
});

const symbolId = computed(() => `#${props.prefix}-${props.name}`);
</script>

6. 引入组件使用

// 导入
import SvgIcon from '@/components/SvgIcon/index.vue';

// 使用
<SvgIcon :name="item.name" :iconStyle="{ width: '24px', height: '24px' }" />

参考文章

vite-plugin-svg-icons 官方文档
fast-glob NPM 文档
Vite2 + Vue3添加svg的使用并通过svg实现自定义Icon组件

VUE3项目学习系列--项目基础配置(四) 项目开发过程中会经历开发环境、测试环境、生产环境三种状态,对与环境变量的配置需求不同,因此需要在项目中进行环境变量的配置。1.在项目根目录下添加如下3个文件文件中输入对应的配置信息在package.json中配置运行命令使用过程通过:import.meta.env 获取配置信息在main.ts中引用测试,当前是开发环境因此只能打印开发环境信息:console.log(import.meta.env); 阅读详情

相关推荐

vue3+vite:封装Svg组件

vite-plugin-svg-icons 是一个 Vite 插件,用于在 Vite 2 项目中方便地使用 SVG 图标。它可以自动将 SVG 图标文件转换为 Vue 组件,并且提供了一些配置选项来自定义生成的组件。

CYL_2021的博客 5218

如何在vue中使用svg图标

注意:如果想使用 fill更改颜色---(往往svg代码中自带fill会导致代码失效)1.删除SVG代码中的fill元素。5.进行封装并注册为全局组件。

m0_74793405的博客 432

vue3+vite配置svg文件的全局使用(想怎么改颜色、宽高都可以)

vue3+vite配置svg文件的全局使用(想怎么改颜色、宽高都可以) 1、你是否遇到UI给你切双份icon图(正常显示颜色、高亮显示颜色)?我们前端小伙伴还得做交互引入两个图片,以后修改颜色又要换?好麻烦呀~~~ 2、是否遇到有时候下载svg下来,想随意更改颜色遇到瓶颈?本来懒人开发原则,还是弄好配置,后面想怎么改就怎么改!!还需要安装一个依赖的插件:vite-plugin-svg-icons用于生成 svg 雪碧图。............

winne雪 7140

vue svg图片查询组件

vue svg图片查询组件 1.组件代码 index.vue <!-- @author zhengjie --> <template> <div class="icon-body"> <el-input v-model="name" style="position: relative;" clearable placeholder="请输入图标名称" @clear="filterIcons" @input.native="filterIcons">

cmmboy1990的博客 595

Vue3+Vite实战:动态SVG图标组件的封装与优化

本文详细介绍了在Vue3+Vite项目中封装和优化动态SVG图标组件的完整方案。通过vite-plugin-svg-icons插件实现SVG图标的自动优化和按需加载,并提供了可复用的SvgIcon组件,支持动态修改颜色、尺寸和旋转动画。文章还包含高级优化技巧、TypeScript类型增强和实战问题解决方案,帮助开发者提升前端项目的图标管理效率。

q6r7s8t9的博客 938

vue3 vite2 封装 SVG 图标组件 - 基于 vite 创建 vue3 全家桶项目续篇

在一文整合了,并将中提供的图标进行全局注册,这样可以很方便的延续Element UI的风格 —— 通过)。在真实的企业级开发中,内置的图标通常很难满足业务需求,项目中需要引入大量的 SVG 图标资源,本文描述如何在 Vue3 + Vite2 环境中使用 SVG 图标,封装一个支持本地 SVG 图标和在线 SVG 图标的组件。文中实现的组件会内置到脚手架中(通过yyg命令行创建的项目内置该组件),如果在此之前已经通过 yyg-cli 创建了项目,可以按照本文的步骤封装 SVG 图标组件。

youyacoder的博客 1367

「vue3-element-admin」使用 @unocss/preset-icons 加载本地 SVG 图标替代 vite-plugin-svg-icons

vite-plugin-svg-icons 停止维护,部分依赖过时,vue3-element-admin 迁移至 @unocss/preset-icons,优化本地 SVG 图标管理,提升兼容性和长期可维护性。

有来技术 3589

vite-plugin-svg-icons:Vite插件可快速创建SVG精灵

vite-plugin-svg-icons English | 用于生成svg精灵图。 特征 预加载项目运行时会生成所有图标,并且只需要操作一次dom。 高性能的内置缓存,只有在修改文件后才会重新生成。 安装(纱线或npm) 节点版本: > = 12.0.0 版本号: > = 2.0.0 yarn add vite-plugin-svg-icons -D 或者 npm i vite-plugin-svg-icons -D 用法 vite.config.ts中的配置插件 import viteSvgIcons from &#39;vite-plugin-svg-icons&#39; ; import path from &#39;path&#39; ; export default ( ) => { return { plugins : [ viteSvgIcons ( {

vite的svg插件:vite-plugin-svg-icons

vite-plugin-svg-icons 通过其优雅的设计和高效的实现,已成为Vue项目SVG图标管理的事实标准方案。结合本文的配置指南、最佳实践和扩展方案,开发者可以快速构建高性能、易维护的图标系统。建议结合官方文档和社区案例持续探索更深度应用。(注:本文大部分由ai生成,如果在使用过程中发现哪里有问题,欢迎留言或私信,我会帮你解决遇到的问题并修正文章)

xiaohua0708day的博客 4537

保姆级教程:用Cadence Sigrity Power DC搞定HI3516A板卡电源压降仿真(含常见报错解决)

本文提供了一份详细的Cadence Sigrity Power DC直流压降仿真教程,特别针对HI3516A板卡设计。从环境准备、器件建模到仿真执行和结果解读,全面覆盖了电源完整性分析的关键步骤,并提供了常见报错的解决方案,帮助工程师快速掌握直流压降分析技术。

weixin_42569329的博客 322

项目管理——14规划绩效域论文套路

规划绩效域论文套路

Flee Elf 1153

【Vite SVG 图标方案:vite-plugin-svg-icons 指南】

前端图标演进史 ``` 1.0 🖼️ 图片图标 → 2.0 🎭 字体图标 → 3.0 🎨 SVG 图标 ``` 传统方案存在三大痛点: - **字体图标**:无法多色、存在锯齿、依赖网络加载 - **独立SVG**:HTTP请求过多、无法统一管理 - **组件化SVG**:打包体积大、无法利用浏览器缓存 ### 💥 破局关键 `vite-plugin-svg-icons` 应运而生,通过: - 🧩 **雪碧图技术** - 合并所有 SVG 为单个文件 - ⚡ **按需加载** - 开发环境保持

weixin_37342647的博客 2603

超实用!用ChimeraX对AlphaFold 结果可视化(中): 蛋白结构美化篇

而一般需要的背景颜色是无色(白色),有三种方法可以更改背景颜色,这里我们介绍两种方法,第三种在下一小节中讲解。如果想选中蛋白链中的某一结构区域或者某些位点,可以用Ctrl+Shift+鼠标左键,或在软件窗口中点击。在这个窗口中可以对蛋白的主链、侧链、表面等颜色进行修改,只用在。,即可在右下角看到我们蛋白的序列信息,在这里面直接用鼠标选择要选择的结构域。就会有更多的颜色供我们选择,如果有特定的色号还可以在这个界面继续选择。后面的颜色(②),就可以选择想要的任何背景颜色(③)。就可以选择软件推荐的常用颜色。

m0_63153079的博客 5481

Vite for Vue项目中使用vite-plugin-svg-icons插件加载svg图标为组件使用

Vite for Vue项目中使用vite-plugin-svg-icons插件加载svg图标为组件使用

Wrysmile0308的博客 5038

4路QSFP28接口能玩出什么花样?基于璞致VU13P开发板的100G网络测试方案

本文详细介绍了基于璞致PZ-VU13P-KFB开发板构建100G网络测试方案的实战指南。该方案充分利用板载Xilinx Virtex UltraScale+ FPGA的强大算力与4路QSFP28接口,涵盖从光模块选型、Aurora协议配置、开源Corundum方案部署,到误码率测试及散热优化的全链路流程,为高速网络设备研发与验证提供了可靠的硬件平台。

cola5的博客 453

PyInstaller打包后在Win7无法运行,提示缺少`api-ms-win-core-path-l1-1-0.dll`问题解决

这个问题的关键在于Python 3.12和Windows 7之间的兼容性问题。解决方法是使用Python 3.8.8版本进行打包,确保程序能够在Windows 7系统上运行。如果你也遇到类似的问题,不妨尝试降级Python版本,看看是否能够解决。希望我的经验能够帮到你!如果你在使用PyInstaller打包时遇到其他问题,欢迎留言讨论。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 993

如何快速优化Vite项目图标加载?vite-plugin-svg-icons的终极指南

**vite-plugin-svg-icons** 是一个专为 Vite 打造的高效 SVG 精灵图生成插件,能帮助开发者简化前端项目中 SVG 图标的管理与使用流程。该项目基于 TypeScript 开发,完美兼容 Vue 等主流前端框架,通过预加载所有图标并在运行时仅需一次 DOM 操作,显著提升应用性能。 ## ???? 为什么选择vite-plugin-svg-icons?核心优势解析 在...

gitblog_00340的博客 1030

【maven】idea左侧External Libraries里,没有Maven的依赖包 代码飘红

文章目录1.概述M.参考 1.概述 因为内网开发,然后这几天我被隔离了,然后公司搞了一个外网的vpn能连接的云桌面,云桌面也是网络隔离的,因此只能自己拷贝相关的文件到里面。 然后我就拷贝了代码和maven仓库中的一部分,因为本地的20G一次拷贝不完,需要多次拷贝,但是我拷贝了kafka,仍然飘红。具体如下 idea左侧External Libraries里,没有Maven的依赖包 然后整了很久都没搞定,后来我自己新建了一个项目,然后引入发现是不可以的,而且框框里面的飘红。 然后我就想是不是因为缺少依赖

九师兄 4411

vite-plugin-svg-icons作用详解

摘要: vite-plugin-svg-icons 是 Vite 生态中用于 SVG 图标自动化管理的插件,通过自动扫描指定目录下的 SVG 文件,生成合并后的 SVG Sprite 雪碧图,并以 <symbol> 形式注入页面。其核心优势包括: 性能优化:减少 HTTP 请求,内置 SVGO 压缩,支持按需加载。 开发提效:组件化调用(如 <SvgIcon name="home" />),支持热更新和 TypeScript 类型提示。 灵活定制:可通过 CSS

大剑师兰特的GIS世界 1131

linux系统宝塔服务器temp文件夹里总是被上传病毒php脚本

服务器时不时的会发送短信说你服务器有病毒,找到了这个tmp文件,删除了之后又有了。确实是有很多人就这么无聊,每天都攻击你的服务器。找了很久的原因,网上也提供了一大堆方法,但都是很简陋的答案,具体怎么操作并没有说。没办法只能自己去排查这个问题。从两个角度来考虑,第一是服务器系统问题,比如宝塔的漏洞。但一时半会看不出问题来。只能去排查自己的项目代码。最后了解到代码确实是存在漏洞的。但代码中也确实了很多的校验,为什么会存在漏洞了?这就不得不从上传的过程开始说起。

guiplan 1496

2024美团秋招硬件开发笔试真题及答案解析

在 Linux 内核的网络设备驱动中,数据链路层的功能通常由网络协议栈的低层(如以太网驱动)实现,而不是作为网络设备驱动的一个独立层次。在 FreeRTOS 中,任务通知(Task Notifications)是一种轻量级的事件传递机制,用于在任务之间或任务与中断之间传递信号。小美正在开发一个简单的密码生成器,其中一个功能是将输入的字符串中的所有字母按字母顺序循环前移一位(即 'a' 变为 'z','B' 变为 'A',以此类推)。它包含了网络设备的各种参数和方法,用于管理网络设备的初始化、配置和操作。

XU157303764的博客 1674

终极指南:用vite-plugin-svg-icons实现SVG图标极速加载(Vue3 + Vite)

vite-plugin-svg-icons 是专为 Vite 生态打造的 SVG 图标管理神器,能帮你将零散的 SVG 文件自动合并为精灵图,大幅提升前端项目的加载性能与开发体验。本文将带你从零开始掌握这款强大的 SVG 图标管理工具。 ## 🎯 开篇亮点速览 **三大核心优势:** - 🚀 **极速预加载** - 项目启动时一次性生成所有图标,运行时只需一次 DOM 操作 - 💾 **

gitblog_00881的博客 567

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

vite+vue3 工程-SVG图标配置使用指南——vite-plugin-svg-icons 插件

在Vite7+Vue3项目中使用vite-plugin-svg-icons插件管理SVG图标的解决方案。该插件支持按需加载、自动打包、缓存优化,通过配置vite.config.js和创建SvgIcon组件,实现SVG图标的统一管理和灵活使用。文中详细展示了项目结构、配置步骤、组件实现和使用示例,并提供了常见问题解决方法,为开发者提供了一套完整的SVG图标系统实现方案。

前端开发-前端技术分享 1209

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Vite项目封装SvgIcon组件——vite-plugin-svg-icons

vite-plugin-svg-icons 是一个 Vite 插件,用于将 SVG 图标转换为 Vue 组件,支持按需加载和高效管理。其主要特性包括自动转换 SVG 文件为 Vue 组件、按需加载、高性能、热更新、自定义配置(如颜色和尺寸调整)以及 Tree-shaking 功能。该插件适用于图标管理系统、UI 组件库开发、性能敏感项目、主题化系统和大型项目。安装和配置简单,通过 Vite 配置文件即可实现。插件还支持封装 SvgIcon 组件,并提供了基本使用、自定义大小和颜色、动态图标等示例。高级用法包

hanhanbeibeiya的博客 1193

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

vite-plugin-svg-icons快速入门指南

**vite-plugin-svg-icons** 是一个专为 Vite 打造的高效SVG精灵图生成插件,旨在简化前端项目中SVG图标管理与使用。此项目主要用 **TypeScript** 编写,兼容Vue等前端框架,支持预加载所有图标,并在项目运行时仅需一次DOM操作,极大提升性能。 ## 关键技术和框架 - **Vite**: 高效的前端构建工具,由Vue.js作者尤雨溪开发。 - **T...

gitblog_09602的博客 1431

5分钟学会SVG图标管理:vite-plugin-svg-icons配置指南

在现代前端开发中,SVG图标管理是提升开发效率和页面性能的关键环节。通过vite-plugin-svg-icons这个强大的Vite插件,开发者可以轻松实现SVG图标的统一管理和高效使用,让前端项目获得显著的性能提升。 ## 🎯 为什么选择SVG图标管理 传统图标处理方式存在诸多痛点:图标文件分散管理困难、页面加载时重复请求、手动插入DOM操作繁琐等。vite-plugin-svg-icon

gitblog_00562的博客 994
上一篇: 【JavasSript】后台返回 csv base64 下载
下一篇: 【Node】node 报错:tagOffsetsMap[tag] ??= [];...SyntaxError: Unexpected token ,‘??=‘
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值