VUE3 加载自定义SVG文件
网上代码通篇一律,需要修改多处地方,特别是component下还要创建一个index.vue的组件,奇奇怪怪。
要在 Vue 项目中使用 svg-sprite-loader 来管理 SVG 图标,你需要执行以下几个步骤:
npm install svg-sprite-loader -D
步骤 1: 配置 vue.config.js
确保你的 Vue 项目的根目录中有一个 vue.config.js 文件,用于自定义 Vue CLI 的内部 webpack 配置。如果文件不存在,你可以创建一个。在这个文件中,添加以下配置:
const path = require('path');module.exports = {chainWebpack: config => {// SVG 规则排除 icons 目录config.module.rule('svg').exclude.add(path.resolve('src/assets/icons'))// 添加 icons 目录的 SVG loaderconfig.module.rule('icons').test(/\.svg$/).include.add(path.resolve('src/assets/icons')).end().use('svg-sprite-loader').loader('svg-sprite-loader').options({ symbolId: 'icon-[name]' })}
};
这个配置告诉 webpack 对于 src/assets/icons 目录中的 .svg 文件,使用 svg-sprite-loader 来处理它们。其他目录中的 .svg 文件将使用项目中默认的 SVG loader。
步骤 2: 添加 SVG 图标
将你的 SVG 图标放置在 src/assets/icons 目录中。例如,你可以有一个名为 example.svg 的图标。
一个简单的 SVG 图标可能看起来像这样:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"/>
</svg>
步骤 3: 全局引入 SVG 图标
在项目的入口文件(通常是main.js或 main.ts)中添加全局 SVG 导入。例如:
import { createApp } from 'vue';
import App from './App.vue';// 导入 SVG 图标
const req = require.context('./assets/icons', false, /\.svg$/);
const requireAll = context => context.keys().map(context);
requireAll(req);createApp(App).mount('#app');
步骤 4: 使用 SVG 图标
在你的组件中,你应该能够通过 symbolId 引用 SVG 图标,就像这样:
<template><svg class="icon" aria-hidden="true"><use xlink:href="#icon-example"></use></svg>
</template>
其中 icon-example 是你的 SVG 文件名。
步骤 5: 重新编译
现在,你可以在任何组件中使用这些 SVG 图标。图标的 ID 将基于文件名,例如 icon-example 对应于 example.svg 文件。
请注意,这些步骤假设你的 Vue 项目是基于 Vue CLI 创建的。如果你的项目结构有所不同,可能需要相应地调整配置和路径。
相关文章:
VUE3 加载自定义SVG文件
网上代码通篇一律,需要修改多处地方,特别是component下还要创建一个index.vue的组件,奇奇怪怪。 要在 Vue 项目中使用 svg-sprite-loader 来管理 SVG 图标,你需要执行以下几个步骤: npm install svg-sprite-loader -…...
【数据分析】numpy基础第五天
文章目录 前言Z-Score标准化Z-Score应用示例 Min-Max归一化Min-Max应用示例 总结 前言 第五天是我们的numpy学习计划中的最后一天。 在数据处理和数据分析中,数据预处理是非常重要的一步。我们不可能完全靠肉眼来分析数据,总会有用到各种算法模型的时候…...
CSS 双色拼接按钮效果
<template><view class="sss"><button> <!-- 按钮 --><view class="span"> 按钮 </view> <!-- 按钮文本 --></button></view></template><script></script><style>body {b…...
T05垃圾收集算法与垃圾收集器ParNew CMS
垃圾收集算法与垃圾收集器ParNew & CMS 垃圾收集算法 #### f 分代收集理论 当前虚拟机的垃圾收集都采用分代收集算法。根据对象存活周期不同将内存分为几块,一般将java堆分为新生代和老年代,然后根据各个年代的特点选择不同的垃圾收集算法。 在新…...
每日一道面试题:Java中序列化与反序列化
写在开头 哈喽大家好,在高铁上码字的感觉是真不爽啊,小桌板又拥挤,旁边的小朋友也比较的吵闹,影响思绪,但这丝毫不影响咱学习的劲头!哈哈哈,在这喧哗的车厢中,思考着这样的一个问题…...
论文阅读:Vary-toy论文阅读笔记
目录 引言整体结构图方法介绍训练vision vocabulary阶段PDF数据目标检测数据 训练Vary-toy阶段Vary-toy结构数据集情况 引言 论文:Small Language Model Meets with Reinforced Vision Vocabulary Paper | Github | Demo 说来也巧,之前在写论文阅读&…...
【Linux】开始使用 vim 吧!!!
Linux 1 what is vim ?2 vim基本概念3 vim的基本操作 !3.1 vim的快捷方式3.1.1 复制与粘贴3.1.2 撤销与剪切3.1.3 字符操作 3.2 vim的光标操作3.3 vim的文件操作 总结Thanks♪(・ω・)ノ感谢阅读下一篇文章见!…...
多线程面试合集
前言 前文介绍了JVM相关知识,本文将重点介绍多线程相关知识以及工作中的一些经验。 多线程面试合集 什么是多线程?为什么我们需要多线程? 多线程是指在一个进程中同时执行多个线程,每个线程可以执行不同的任务。多线程可以提高…...
从微服务到云原生
很多文章介绍云原生概念,说它包含微服务,又包含了其它几个方面的东西,还扯到文化层面、组织层面和技术层面,搞技术的人一听到公司文化问题和组织部门问题,就十分地晕眩,不能让我好好地坐下来写写代码、搞搞…...
bxCAN 主要特性
bxCAN 主要特性 ● 支持 2.0 A 及 2.0 B Active 版本 CAN 协议 ● 比特率高达 1 Mb/s ● 支持时间触发通信方案 发送 ● 三个发送邮箱 ● 可配置的发送优先级 ● SOF 发送时间戳 接收 ● 两个具有三级深度的接收 FIFO ● 可调整的筛选器组: — CAN1 和…...
武忠祥2025高等数学,基础阶段的百度网盘+视频及PDF
考研数学武忠祥基础主要学习以下几个方面的内容: 1.微积分:主要包括极限、连续、导数、积分等概念,以及它们的基本性质和运算方法。 2.线性代数:主要包括向量、向量空间、线性方程组、矩阵、行列式、特征值和特征向量等概念,以及它们的基本…...
用JavaFX写了一个简易的管理系统
文章目录 前言正文一、最终效果1.1 主页面1.2 动物管理页面-初始化1.3 动物管理页面-修改&新增1.4 动物管理页面-删除&批量删除 二、核心代码展示2.1 启动类2.2 数据库配置-db.setting2.3 日志文本域组件2.4 自定义表格视图组件2.5 自定义分页组件2.6 动物管理页面2.7 …...
第二百九十回
文章目录 1. 概念介绍2. 方法与细节2.1 实现方法2.2 具体细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何混合选择多个图片和视频文件"相关的内容,本章回中将介绍如何通过相机获取视频文件.闲话休提,让我们一起Talk Flutter吧。 1. …...
bert实现完形填空简单案例
使用 bert 来实现一个完形填空的案例,使用预训练模型 bert-base-chinese ,这个模型下载到跟代码同目录下即可,下载可参考:bert预训练模型下载-CSDN博客 通过这个案例来了解一下怎么使用预训练模型来完成下游任务,算是对…...
Jmeter 分布式测试
Jmeter单机进行压测,受到单台机器的性能影响,Jmeter支持分布式测试,用一个控制节点去控制多个工作节点去模拟更多的用户。 版本信息 内容版本号JDK1.8Jmeter5.6.2 分布式测试原理 jmeter 官网对分布式测试有说明,jmeter分布式…...
在 Ubuntu 上安装 Docker Engine
系列文章目录 前言 要在 Ubuntu 上开始使用 Docker Engine,请确保满足先决条件,然后按照安装步骤进行操作。 一、先决条件 注意事项 如果您使用 ufw 或 firewalld 管理防火墙设置,请注意当您使用 Docker 暴露容器端口时,这些端口…...
Mac安装nvm,安装多个不同版本node,指定node版本
一.安装nvm brew install nvm二。配置文件 touch ~/.zshrc echo export NVM_DIR~/.nvm >> ~/.zshrc echo source $(brew --prefix nvm)/nvm.sh >> ~/.zshrc三.查看安装版本 nvm -vnvm常用命令如下:nvm ls :列出所有已安装的 node 版本nvm…...
【开源】基于JAVA+Vue+SpringBoot的智慧家政系统
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询家政服务4.2 新增单条服务订单4.3 新增留言反馈4.4 小程序登录4.5 小程序数据展示 五、免责说明 一、摘要 1.1 项目介绍 基于微信小程序JAVAVueSpringBootMySQL的智慧家政系统࿰…...
Python NLP深度学习进阶:自然语言处理
自然语言处理(Natural Language Processing,NLP)是人工智能领域中的一个重要分支,涉及到处理和理解人类语言的方法和技术。随着深度学习的快速发展,NLP的研究和应用也在不断进步。 在Python中,有许多强大的…...
STM32单片机基本原理与应用(三)
矩阵键盘工作原理 矩阵键盘由多个独立按键组成,按键的一端接地,一端接MCU的GPIO。当按键没有被按下时,电路其实是一个断路,将单片机该引脚设置成输入上拉状态,读到的电平为高电平。当按下按键时,引脚会被拉…...
IDEA插件实战:CodeGeeX4不只是补全代码,这5个隐藏用法让效率翻倍
IDEA插件实战:CodeGeeX4不只是补全代码,这5个隐藏用法让效率翻倍 在JetBrains生态中,AI编程助手早已不是新鲜事物,但大多数开发者对CodeGeeX4的认知仍停留在"智能补全"层面。当我在团队内部做技术分享时,发现…...
Harness Engineering 又是什么新 AI 玩具?
今天我们聊了业内最新提出的 Harness Engineering。可以看到,在 AI 智能体优先的世界里,软件工程的鲁棒性开始转移到了支撑智能体上。最近 AI 编程可以说是卷上天了,不得不说时代的大车轱辘已经碾过来了。GLM 一个月内狂发新模型。我们今天来…...
如何彻底告别网盘限速?八大平台直链解析工具全攻略
如何彻底告别网盘限速?八大平台直链解析工具全攻略 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广…...
360周鸿祎:智能体技术破圈,引领产业全面重构与独角兽机遇
【导语:在2026中关村论坛年会全球独角兽企业大会上,360集团创始人周鸿祎围绕“龙虾”等新一代智能体技术,阐述其带来的产业变革机遇,涉及互联网、软件等多领域重构,有望催生大量独角兽企业。】智能体技术“破圈”&…...
DeepSeek-Coder-V2:开源代码助手如何超越商业模型实现90%代码生成准确率?
DeepSeek-Coder-V2:开源代码助手如何超越商业模型实现90%代码生成准确率? 【免费下载链接】DeepSeek-Coder-V2 项目地址: https://gitcode.com/GitHub_Trending/de/DeepSeek-Coder-V2 还在为代码编写效率低下而苦恼吗?作为开发者的你…...
像素幻梦·创意工坊实操手册:实时HUD状态栏信息读取与调试技巧
像素幻梦创意工坊实操手册:实时HUD状态栏信息读取与调试技巧 1. 认识像素幻梦的HUD状态栏 像素幻梦创意工坊的HUD(Head-Up Display)状态栏位于界面顶部,采用16-bit像素风格设计,为创作者提供实时系统状态反馈。这个看…...
别再为小Batch Size发愁了!手把手教你用Group Normalization稳定训练你的PyTorch模型
别再为小Batch Size发愁了!手把手教你用Group Normalization稳定训练你的PyTorch模型 当你在训练深度学习模型时,是否遇到过这样的困境:由于GPU显存限制,只能使用较小的batch size,结果模型训练变得极不稳定ÿ…...
granite-4.0-h-350m效果展示:Ollama运行下德语工业标准文档理解案例
granite-4.0-h-350m效果展示:Ollama运行下德语工业标准文档理解案例 1. 模型核心能力概览 Granite-4.0-H-350M是一个轻量级但功能强大的指令模型,专门针对设备部署和研究场景优化。这个350M参数的模型虽然体积小巧,但在多语言理解和指令跟随…...
别再手动算了!用Matlab RF Toolbox一键搞定S/Z/Y/ABCD参数转换(附3dB电桥实例代码)
射频工程师的救星:Matlab RF Toolbox参数转换全攻略 每次面对S/Z/Y/ABCD参数的手动转换,是不是总有种想摔计算器的冲动?那些复杂的矩阵运算和容易出错的推导过程,简直是在浪费生命。作为一名射频工程师,我深知这种痛苦…...
MediaPipeUnityPlugin技术解构与实战指南:Unity AI视觉开发进阶之路
MediaPipeUnityPlugin技术解构与实战指南:Unity AI视觉开发进阶之路 【免费下载链接】MediaPipeUnityPlugin Unity plugin to run MediaPipe 项目地址: https://gitcode.com/gh_mirrors/me/MediaPipeUnityPlugin 问题发现:Unity AI视觉开发的现实…...
