Vue3 项目中 svg 图标的封装及使用

news2024/9/21 11:05:27

安装

npm install vite-plugin-svg-icons -D

在 vite.config.ts 中配置插件:

import { createSvgIconsPlugin} from 'vite-plugin-svg-icons';
import path from 'path';

 plugins: [
    createSvgIconsPlugin({
      iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
      symbolId: 'icon-[dir]-[name]'
    })
  ],

在入口文件进行配置:

import 'virtual:svg-icons-register'

使用方法

在assets/icons/ 下引入 svg 格式的文件,并给图标命名。
在这里插入图片描述

只需在需要的地方,使用 svg 引入图标即可。需要注意的点是:xlink:href用哪个图标,其属性值必须是 #icon-图标名字。

<svg width="100" height="100">
   <use xlink:href="#icon-music"></use>
 </svg>

在这里插入图片描述

组件封装

<template>
    <svg>
        <use :xlink:href="prefix + name" :fill="color"></use>
    </svg>
</template>

<script setup lang="ts">
defineProps({
    // xlink:href 前缀
    prefix: {
        type: String,
        default: '#icon'
    },
    // 图标的名字
    name: String,
    // 图标颜色
    color: String
})
</script>

组件的使用

import SvgIcon from '@/components/SvgIcon/index.vue'

<svg-icon name="music" color="pink"></svg-icon>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1907310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

解决win10报“无法加载文件……profile.ps1,因为在此系统上禁止运行脚本”的问题

打开命令行报错 解决方法 使用管理员权限打开PowerShell&#xff1a;WinX, 选择“Windows PowerShell&#xff08;管理员&#xff09;” 输入&#xff1a;Set-ExecutionPolicy -ExecutionPolicy RemoteSigned 输入&#xff1a;y确认修改安全策略 &#xff1a;y确认修改安全策略…

CAD、CAE、CAM介绍——定义,概述,历史,相关软件,应用与前景

目录 引出CAD/CAE/CAM计算机辅助设计 Computer-aided design (CAD)1.定义&#xff1a;2.概述3.类别4.科技5.软件&#xff1a; 计算机辅助工程 Computer-Aided Engineer (CAE)1.定义&#xff1a;2.概述3.CAE领域&#xff1a;4.应用与前景 计算机辅助制造 Computer-aided manufac…

Python自动化测试系列[v1.0.0][高效自动化设计]

Python多线程应用于自动化测试 将多线程在测试巧妙地应用&#xff0c;确实会带来很多好处&#xff0c;并且这是充分利用机器资源执行高效率测试很好的方式 # -*- coding: utf-8 -*- import threading from time import ctime import time from selenium import webdriverdef …

百度网盘非会员,享受视频倍速

百度网盘会员过期了&#xff0c;看视频不能倍速很难受&#xff0c;下面就是跨过会员机制&#xff0c;享受倍速的方法。 Edge浏览器 在浏览器设置中找到扩展选项 在扩展中搜索视频速度控制 global speed&#xff0c;安装后即可使用

品牌推广必备:软文案例撰写与文案策划全解析!

做品牌推广&#xff0c; 不仅需要有推广渠道&#xff0c;文案的策划也是必不可少的一部分。文案是属于灵魂的部分。 作为一名手工酸奶品牌的创始人&#xff0c;目前全国也复制了100多家门店&#xff0c;这篇文章&#xff0c;详细和大家拆解&#xff0c;文案创作的要点&#xf…

金融科技赋能:加马智能质检系统引领金融机构迈向高效合规新时代

为了保护消费者合法权益、促进市场稳定健康发展&#xff0c;近年来监管机构相继发布了《银行保险机构消费者权益保护管理办法》、《银行业金融机构销售专区录音录像管理暂行规定》、《保险销售行为管理办法》等多项法律法规&#xff0c;对于银行、保险等金融机构的服务、销售行…

神卓互联共享文件使用教程

#文件共享# 文件共享已成为我们日常生活和工作中不可或缺的一部分。它如同一条无形的纽带&#xff0c;将人们紧密地联系在一起&#xff0c;促进了信息的快速传播和交流。 文件共享的魅力在于其打破了地域和时间的限制。无论我们身处世界的哪个角落&#xff0c;只要有网络连接&a…

我们所熟知的meme梗图也可以用AI生成了,老外都玩坏了。

meme梗图不知道大家看到过嘛&#xff1f;相信你们看见下面的图你就会大叫“卧槽”&#xff0c;原来是这种图&#xff0c;我以前经常狂刷不止&#xff0c;太有趣了。 其实meme是一个网络流行语&#xff0c;可译为模因。在大众非学术范围内也可翻译为我们所熟知的“梗”。其中“表…

4个方法帮助你解决RAR解压文件时提示密码错误问题

在日常工作和学习中&#xff0c;我们经常需要处理各种压缩文件&#xff0c;这些文件有时为了保护内容安全&#xff0c;会被设置密码。然而&#xff0c;在解压这些文件时&#xff0c;如果遇到“密码错误”的提示&#xff0c;可能会让人感到十分棘手。今天&#xff0c;我们就来探…

C++规范

一、VS工具集列表&#xff1a; Visual Studio 2008&#xff1a;v90 Visual Studio 2010&#xff1a;v100 Visual Studio 2012&#xff1a;v110 Visual Studio 2013&#xff1a;v120 Visual Studio 2015&#xff1a;v140 &#xff08;v140_xp&#xff09; Visual Studio 2017&a…

Java-Sql注入以及如何解决

sql脚本注入: 如果sql语句使用字符串拼接&#xff0c;可能会出现字符串的拼接&#xff0c;导致sql注入。 #是会先进行预编译&#xff0c;传进来的参数通过占位符填入到已经完成编译的语句中去。

windows 11 + kali wsl二合一配置步骤与踩坑

windows 11 kali wsl二合一配置步骤与踩坑 在前几天的某市攻防演练中&#xff0c;在攻防前期&#xff0c;我的虚拟机经常无缘无故出现断网、卡顿等现象&#xff0c;但找不出原因。 为了不影响后续的这些天的攻防演练&#xff0c;我选择在一个晚上通宵 在我的windows 11系统上…

鼠标录制工具|键鼠轨迹录制,实现自动办公

利用键鼠录制工具录制固定的鼠标点击、键盘输入等操作&#xff0c;实现自动化执行固定操作&#xff0c;节省时间。鼠标录制功能可以录制多步骤的操作&#xff0c;将录制的动作保存并命名&#xff0c;甚至可以编辑操作速度。下面将演示几种生活中常见的案例&#xff0c;详细讲解…

怎么才能选到好的猫咪主食冻干?公认顶尖优秀主食冻干总结

如今&#xff0c;主食冻干市场纷繁多样&#xff0c;质量水平却大相径庭。部分品牌盲目追求高营养值和利润增长&#xff0c;却忽略了猫咪健康饮食的本质需求&#xff0c;导致市场上充斥着以次充好、虚假标注日期等不法行为。更有甚者&#xff0c;部分产品未经权威第三方检测便匆…

E - Tree and Hamilton Path 2

算出所有路径之和2减去树的直径 #include <bits/stdc.h> using namespace std; typedef long long ll; const int N2e610; ll n,ans; ll e[N],h[N],idx,w[N],ne[N],dis[N]; void add(ll a,ll b,ll c){ e[idx]b,ne[idx]h[a],w[idx]c,h[a]idx; } ll c; void dfs(ll u,…

5款好用公司监控软件分享|管理者必看

当今社会&#xff0c;企业数据安全和员工工作效率成为了管理者不可忽视的重要议题。 选择合适的公司监控软件&#xff0c;不仅有助于提升管理效率&#xff0c;还能有效保障企业信息安全。 下面小编将为您分享五款备受好评的公司监控软件&#xff0c;助力管理者更好地管理企业…

前端使用Threejs加载机械臂并控制机械臂跳舞

1. 前言 在我的第一篇博客中,大致讲解了如何使用threejs导入机械臂模型,以及如何让机械臂模型动起来的案例,可以看一下之前的博客前端使用Threejs控制机械臂模型运动 本篇博客主要讲解的是在原来的基础上添加GSAP动画库的应用,可以通过动画,来让机械臂进行指定轨迹位姿的运动…

vue3 学习 之 vue3使用

为什么要学习vue3呢&#xff1f; vue2.0也是现在比较稳定的一个版本&#xff0c;社区还有周边都比较完善&#xff0c;如果不是非必要其实我们不需要着急直接升级到vue3.0; 那为什么还要学习&#xff0c;主要是还是为了了解一下vue3.0相较于2.0的优势和特性&#xff0c;方便之后…

C++20中的基于范围的for循环(range-based for loop)

C11中引入了对基于范围的for循环(range-based for loop)的支持&#xff1a;该循环对一系列值(例如容器中的所有元素)进行操作。代码段如下&#xff1a; const std::vector<int> vec{ 1,2,3,4,5 }; for (const auto& i : vec)std::cout << i << ", …

推荐系统三十六式学习笔记:原理篇.MAB问题18|如何将Bandit算法与协同过滤组合使用

目录 信息茧房COFIBA1.思想2.细节 再谈EE问题总结 荐系统中最经典的算法是协同过滤&#xff0c;其背后的思想简单深刻&#xff0c;在万物互联的今天&#xff0c;协同过滤的威力更加强大。与其说协同过滤是一门技术&#xff0c;不如说是一种方法论&#xff0c;协同过滤生动的诠释…