vue3 + vite + ts 封装 SvgIcon组件

环境 vite + vue3 + ts

"vue": "^3.3.4",
"vite": "^4.4.0",
"typescript": "^5.0.2",# 需要下载的依赖
"vite-plugin-svg-icons": "^2.0.1",

不同版本可能存在一定差异, 这篇文章不可能对应所有版本, 但具有一定的参考性,

1. 安装依赖

pnpn install vite-plugin-svg-icons -D

2. 配置vite.config.ts 文件

//引入依赖
import path from "path";
import { createSvgIconsPlugin } from "vite-plugin-svg-icons";//启用插件
createSvgIconsPlugin({// 指定图标文件夹,绝对路径(NODE代码)iconDirs: [path.resolve(process.cwd(), "src/svgs")],
})

在这里插入图片描述

3. 创建文件夹

在src文件下新建一个文件夹, 里面存放svg图标

在这里插入图片描述

4. 封装SvgIcon组件

<template><svg:class="className"class="svg-icon":style="iconStyle"aria-hidden="true"><use :xlink:href="iconName"></use></svg>
</template><script setup lang="ts">
import {computed} from "vue";const props = defineProps({// 类名className: {type: String, // 可以传入类名default: '',},iconStyle: { // icon的样式, 是一个对象type: Object,default: ()=>({})},name: { //应用的图标名称type: String,default: ''}
})const iconName = computed(() => {return `#icon-${props.name}`
})</script><style lang="scss" scoped>svg {width: 1em;height: 1em;vertical-align: -0.15em;fill: currentColor; // 填充为当前颜色overflow: hidden;}
</style>

路径的话, 找一个方便管理的地方 比如 src/components 文件下

5. 全局引入

在main.ts中对组件进行引入


// 引入Svg组件
import "virtual:svg-icons-register";
import SvgIcon from "./components/SvgIcon.vue";const app = createApp(App);// ....
// 全局注册
app.component('SvgIcon',SvgIcon)// ....
app.mount('#app')

6.使用

<SvgIcon name="[这里是的名称,按照模板的写法文件的名称即可]":iconStyle="{'这里是对象形式的样式'}":iconClass="这里是类名"
></SvgIcon>

在这里插入图片描述

备注: SvgIcon组件的, 按照自己的喜好与需求去封装,
还有很多使用其他插件的教程, 大家根据自己的需求去下载使用,
但对于每篇教程都要保留一定的思考性, 如果能找到对应的版本就很棒了,
没有得话就找一下相似版本的教程作为参考,

文章最后放上一张’二次元’请添加图片描述

本文可以白嫖!!!

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

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

相关文章

算法随笔:图论问题之割点割边

割点 定义 割点的定义&#xff1a;如果一个点被删除之后会导致整个图不再是一个连通图&#xff0c;那么这个顶点就是这个图的割点。举例&#xff1a; 上图中的点2就是一个割点&#xff0c;如果它被删除&#xff0c;则整个图被分为两个连通分量&#xff0c;不再是一个连通图。…

华为固件解包工具linux,华为官方APP固件解包工具

官方ROM解包教程&#xff0c;现写一个简易的教程&#xff0c;不需要linux环境&#xff0c;直接在window XP/ win7上操作&#xff0c;WIN8亲自测 首选需要用到两个工具. APP固件解包工具---解压华为ROM的APP文件 ext4_unpacker--- IMG文件解压工具&#xff01; 教程&#xff1a;…

华为固件解包工具linux,华为app固件解包工具

华为固件解包工具是一款针对华为手机所推出的APP固件解包软件。它的功能十分强大&#xff0c;将华为官方SD卡刷机包UPDATA.APP解包成IMG镜像分区文件&#xff0c;还可以提取recovery.img、system.img等分区文件&#xff0c;操作十分简单&#xff0c;需要的用户可下载体验。 【使…

华为悦盒Q21和EC6109U-Hi3798MV200-已ROOT和ADB当贝桌面TTL线刷烧录固件包

华为悦盒Q21和EC6109U-Hi3798MV200-已ROOT和ADB当贝桌面TTL线刷烧录固件包 特点&#xff1a; 1、适用于对应型号的电视盒子刷机&#xff1b; 2、开放原厂固件屏蔽的市场安装和u盘安装apk&#xff1b; 3、修改dns&#xff0c;三网通用&#xff1b; 4、大量精简内置的没用的…

华为固件解包工具linux,华为EMUI8.0固件解包教程(含提取recovery方法)

华为EMUI8.0固件解包教程(含提取recovery方法),现在出来的新款华为手机基本上都是EMUI8.0系统的&#xff0c;一些玩机新手便想着怎么提取一下固件中的相关文件&#xff0c;比如原版的recovery.img或者system.img文件&#xff0c;懂得linux的用户还能从中提取出一些自己需要的文…

华为手机如何删除云存储中的数据

--------------------------------------------- -- 时间&#xff1a;2019-01-29 -- 创建人&#xff1a;Ruo_Xiao -- 邮箱&#xff1a;xclsoftware163.com --------------------------------------------- 1、网址&#xff1a;https://www.hicloud.com/home#/home 2、登陆之后…

华为畅享10计算机卸载了怎么恢复,华为自带软件被删除如何恢复

关于华为手机自带软件如果被删除了&#xff0c;我们该怎么去恢复呢&#xff0c;相信有不少的小伙伴都不清楚&#xff0c;接下来就跟着IEfans小编一起了解一下华为自带软件恢复方法图文教程吧&#xff01; 方法/步骤分享&#xff1a; 1、首先我们需要打开华为手机基础设置&#…

H3C设备删除固件文件、清空回收站

使用H3C网络设备时&#xff0c;可能会碰到固件升级&#xff0c;有时升级文件过大&#xff0c;可能需要删除H3C设备上的不必要的文件来释放flash空间&#xff0c;用delete文件名删除文件后可用空间并没变大&#xff0c;是文件名虽然dir看不到了&#xff0c;实际空间并没释放。下…

华为系统更新彻底卸载_华为手机系统更新好吗 华为手机系统更新方法

阅读本文前&#xff0c;请您先点击上面的蓝色字体&#xff0c;再点击“关注”&#xff0c;这样您就可以继续免费收到文章了。每天都有分享&#xff0c;完全是免费订阅&#xff0c;请放心关注。 …

教学网站毕业设计源码【演示视频】

演示视频 教学网站毕业设计源码【演示视频】 – 源社区演示视频 源码下载地址 https://www.51aspx.com/code/OYXOnlineTeachingWebsite 源码特点 一款在线教学网站毕业设计&#xff0c;包含论文&#xff0c;有后台管理&#xff0c;适合初学者学…https://club.51aspx.com/2544…

如何高效录制教学视频?

从前那些无法绕开的繁琐操作&#xff0c;现在都可以由优秀的软件工具帮你搞定了。 题图&#xff1a;Photo by Johanna Buguet on Unsplash 最近我做了一系列的教学视频。留言区除了对视频内容的询问外&#xff0c;也有不少小伙伴问我&#xff0c;用了什么工具。 其实录视频这…

网易最新视频剪辑课程来了

网易剪辑师养成计划 - 0基础 0费用 纯干货- 大家看过我以前推文的话&#xff0c;会知道这两年&#xff0c;我更多地开始尝试拍短视频了。 没有特别的起因&#xff0c;就是出去玩想记录下&#xff0c;从开先的手机拍摄和剪辑&#xff0c;到后来想把视频做地更好些&#xff0c;就…

短视频剪辑制作教学:编辑短视频时需要注意的三个方面

短视频剪辑制作教学&#xff1a;编辑短视频时需要注意的三个方面 今天为大家带来的是短视频剪辑制作教学之编辑短视频时需要注意到的三个方面&#xff0c;注意到并做好&#xff0c;才能做出来更加优质的短视频内容&#xff0c;那么话不多说&#xff0c;接下来就一起看看吧&…

allure测试报告

使用pytest结合Allure进行测试报告生成的简单教程 allure测试报告 Allure基于Java开发&#xff0c;因此我们需要提前安装Java 8或以上版本的环境。 ◆安装allure-pytest插件在DOS窗口输入命令“pip3 install allure-pytest”&#xff0c;然后按“Enter”键。 下载安装Allure…

fork--创建进程

fork–创建进程 fork函数基本知识 pid_t fork(void) 返回值&#xff1a;在父进程中&#xff0c;成功的话返回子进程的pid&#xff0c;失败返回-1在子进程中&#xff0c;返回值pid为0fork()函数将运行着的进程分裂出另一个子进程&#xff0c;它通过拷贝父进程的方式创建子进程…

[SAMtools] 常用指令总结

源自&#xff1a;http://sanwen.net/a/hirxmpo.html samtools是一系列处理bam和sam格式文件的应用程序集合&#xff0c;具有众多的功能。 首先呢&#xff0c;bam和sam文件主要是bwa、bowtie、tophat等序列比对工具产生的&#xff0c;这些软件我们后面会谈到。 软件下载安装&…

Glide 的超时控制相关处理

作者&#xff1a;newki 前言 Glide 相信大家都不陌生&#xff0c;各种源码分析&#xff0c;使用介绍大家应该都是烂熟于心。但是设置 Glide 的超时问题大家遇到过没有。 我遇到了&#xff0c;并且掉坑里了&#xff0c;情况是这样的。 调用接口从网络拉取用户头像&#xff0c…

高通量DNA测序数据的生物信息学方法

来源&#xff1a;大数据期刊 时间&#xff1a;2016-05-13 14:41:09 作者&#xff1a;詹晓娟 姚登举 朱怀球 詹晓娟1&#xff0c;姚登举2&#xff0c;朱怀球3 1. 黑龙江工程学院计算机科学与技术学院&#xff0c;黑龙江 哈尔滨 150050&#xff1b; 2. 哈尔滨理工大学软件学院…

C++ pair详解

pair pair在cplusplus 与CPrimer中的介绍 首先可以看到pair是一个class template —类模板 pair也是一种模板类型。 对 pair 的介绍是&#xff1a; 这个类将一对值耦合在一起&#xff0c;这些值可能是不同类型的(T1和T2)。单个值可以通过其公共成员first和second访问。 pair是…

聊聊OpenStack运维架构

前言 想一想&#xff0c;从事OpenStack杂七杂八的事儿&#xff0c;至今正好三年半了。做过QA测试&#xff08;手动的、自动的&#xff09;、CI&#xff08;gerrit、jenkins、gitlab、harbor&#xff09;、云产品封装&#xff08;从系统pxe到openstack代码&#xff09;、自动化…