vite 中使用插件 vite-plugin-svg-icon加载svg资源

1.安装

pnpm i vite-plugin-svg-icons -D

2.配置 vite
在vite.config.ts 中配置

import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
import path from 'path';function configSvgIconsPlugin(isBuild: boolean) {const svgIconsPlugin = createSvgIconsPlugin({// 要缓存的图标文件夹iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],svgoOptions: isBuild,// default, 执行 icon name 的格式symbolId: 'icon-[dir]-[name]',});return svgIconsPlugin;
}
export default defineConfig({...plugins: [···configSvgIconsPlugin(isBuild)],···})
  1. 修改main.ts
// 注册图标
import 'virtual:svg-icons-register';
  1. 完成 svg-icon 组件
    可以使用svg,组件 components/svg-icon/index.vue 完整代码如下:
<template><div v-if="isOnlineSvg":style="{ '--svg-icon-url': `url(${icon})` }"class="svg-icon svg-icon-online":class="className"/><svg v-elseclass="svg-icon":class="className"aria-hidden="true"><use :xlink:href="`#icon-${icon}`"/></svg>
</template><script lang="ts" setup>
import { computed } from 'vue'const props = defineProps({// SVG 图标名称或在线URLicon: {type: String,required: true},// 图标类名className: {type: String,default: ''}
})const isOnlineSvg = computed(() => /^(https?:)/.test(props.icon))
</script><style scoped lang="scss">
.svg-icon {width: 1em;height: 1em;fill: currentColor;overflow: hidden;
}.svg-icon-online {background-color: currentColor;mask-image: var(--svg-icon-url);-webkit-mask-image: var(--svg-icon-url);mask-size: cover;-webkit-mask-size: cover;display: inline-block;
}
</style>

5.测试 本地/在线 图标
由于 vite.config.ts 中配置的 svg 目录为 src/assets/icons,首先将 car.svg 拷贝到该目录下。继续在 about.vue 中添加如下代码:

<div><svg-icon icon="http://www.yygnb.com/demo/car.svg"></svg-icon><svg-icon icon="car"></svg-icon><svg-icon class-name="icon" icon="http://www.yygnb.com/demo/car.svg"></svg-icon><svg-icon class-name="icon" icon="car"></svg-icon>
</div>

done。

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

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

相关文章

不会设计Logo,不如来看看这9个Logo设计软件!

优秀的 Logo 是企业的形象展示。大公司将花费数万甚至数百万定制特色标志。由于预算有限&#xff0c;一些中小企业或企业家往往希望找到更具成本效益的渠道。这里有 9 个免费的 Logo 设计软件。用户可以通过输入品牌名称来生成自己的 Logo。 1、即时设计 即时设计是一个国内的…

Tomcat部署(图片和HTML等)静态资源时遇到的问题

文章目录 Tomcat部署静态资源问题图中HTML代码启动Tomcat后先确认Tomcat是否启动成功 Tomcat部署静态资源问题 今天&#xff0c;有人突然跟我提到&#xff0c;使用nginx部署静态资源&#xff0c;如图片。可以直接通过url地址访问&#xff0c;为什么他的Tomcat不能通过这样的方…

leetcode 904. 水果成篮(优质解法)

代码&#xff1a; class Solution {public int totalFruit(int[] fruits) {int lengthfruits.length;int []fruitNumsnew int[length1]; //用于记录各个种类摘了多少个水果int count0; //用于记录当前采摘了几种水果int sum0; //用于记录当前共摘了多少水果for(int left0…

Peter算法小课堂—简单建模(2)

太戈编程736题 题目描述&#xff1a; 你是一只汪星人&#xff0c;地球毁灭后你回到了汪星&#xff0c;这里每天有n个小时&#xff0c;你需要为自己选择正好连续的m小时作为每天睡眠的时间。从凌晨开始&#xff0c;第i小时内的睡眠质量为xi&#xff0c;请问经过选择后&#xf…

详解—C++右值引用

目录 一、右值引用概念 二、 左值与右值 三、引用与右值引用比较 四、值的形式返回对象的缺陷 五、移动语义 六、右值引用引用左值 七、完美转发 八、右值引用作用 一、右值引用概念 C98中提出了引用的概念&#xff0c;引用即别名&#xff0c;引用变量与其引用实体公共…

Android P 9.0 增加以太网静态IP功能

效果图 一、Settings添加以太网的配置&#xff1a; 1、vendor\mediatek\proprietary\packages\apps\MtkSettings\res\xml\network_and_internet.xml <com.android.settingslib.RestrictedPreferenceandroid:key"ethernet_settings"android:title"string/et…

如何在PHP中发送电子邮件?

在 PHP 中发送电子邮件通常涉及使用内置的 mail 函数或使用更强大的邮件库&#xff0c;例如 PHPMailer 或 Swift Mailer。以下是使用 mail 函数和 PHPMailer 的基本示例&#xff1a; 使用 mail 函数&#xff1a; <?php$to "recipientexample.com"; $subject …

集合04 Collection (Set) - Java

Set Set 基本介绍Set 常用方法Set 遍历方式 HashSet 的全面说明练习 HashSet 的底层机制说明HashSet 的扩容机制&转成红黑树机制练习1练习2 LinkedHashSetLinkedHashSet底层源码练习 Set 基本介绍 无序&#xff08;添加和取出的顺序不一致)&#xff0c;没有索引 [后面演示…

【Java系列】详解多线程(二)——Thread类及常见方法(下篇)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习Java的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一…

大模型微调的“温度”参数,原来影响的是 softmax

大家好啊&#xff0c;我是董董灿。 在对大模型进行微调训练时&#xff0c;经常会看到几个重要的超参数&#xff0c;用来控制大模型生成文本的效果。 其中一个超参数叫做 Temperature&#xff0c;中文名字叫温度&#xff0c;初见时很是不解&#xff0c;为啥一个模型还有温度这个…

将创建表字段语句快速转换成golang struct字段

用网页jquery快速生成 本地建立 struct.html <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>leo-转换</title> <script src"https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></s…

深入学习《大学计算机》系列之第1章 1.2节——问题描述与抽象

一.欢迎来到我的酒馆 第1章 1.2节&#xff0c;问题描述与抽象。 目录 一.欢迎来到我的酒馆二.问题描述、抽象与建模1.什么是抽象2.为什么要抽象3.什么是建模 二.问题描述、抽象与建模 什么是抽象&#xff1f;为什么要抽象&#xff1f;什么是建模&#xff1f;建什么模&#xff1…

Windows安装Elasticsearch并结合内网穿透实现公网远程访问

Windows安装Elasticsearch并结合内网穿透实现公网远程访问 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 Elasticsearch是一个基于Lucene库的分布式搜…

[Longformer]论文实现:Longformer: The Long-Document Transformer

文章目录 一、完整代码二、论文解读2.1 介绍2.2 Longformer注意力模式注意力计算 2.3 自回归语言模型注意力模式训练结果 2.4 预训练和微调注意力模式位置编码预训练结果 2.5 Longformer-Encoder-Decoder (LED) 三、整体总结 论文&#xff1a;Longformer: The Long-Document Tr…

面向遥感图像的道路区域提取及优化

一、论文2017 (1)DeepRoadMapper (2)Topology Loss2018 (1)RoadTracer (2)iterative-deep-learning2019 (1)Leveraging Crowdsourced GPS Data for Road Extraction from Aerial Imagery (2)RoadNet (3)RoadTagger (4)Generative Graph Transformer (5)road_…

wordpress:6.3的docker部署和k8s部署方式

wordpress:6.3的docker部署 一.docker部署mysql5.7数据库 docker pull mysql:5.7 mkdir -p /data/mysql/data /data/mysql/logs /data/mysql/conf touch /data/mysql/conf/my.cnf docker run --restartalways -p 13306:3306 --name mysql -v /data/mysql/conf:/etc/mysql/con…

std::vector

这里主要介绍下reserce/resize、push_back/emplace_back、shrink_to_fit/clear等接口&#xff1b; 1. reserve and resize C的vector对象可以通过reserve方法来设置vector对象的容量&#xff0c;通过resize方法来改变vector对象的大小。reserve所设置的容量指的是vector容器中可…

网工内推 | IT经理,50k*14薪,NP以上即可,七险一金

01 海天瑞声 招聘岗位&#xff1a;IT经理 职责描述&#xff1a; 1、IT基础架构的方案制定、实施和日常维护&#xff0c;包括机房建设运维、服务器配置及运维、网络规划及运维、上网行为管理、电话、电话、监控、门禁等各类弱电系统搭建及运维 2、负责公司环境及网络安全防御体…

Vue 按键修饰符

常用按键修饰符&#xff1a;enter【回车】、delete【删除】、esc【退出】、space【空格】、tab【缩进】、up【上】、down【下】、left【左】、right【右】 。 系统按键修饰符&#xff1a;ctrl、alt、shift、meta【四个小方块】 。 鼠标修饰符&#xff1a;left【左键】、right…

LeetCode-2104. 子数组范围和【栈 数组 单调栈】

LeetCode-2104. 子数组范围和【栈 数组 单调栈】 题目描述&#xff1a;解题思路一&#xff1a;暴力解法。用两个指针代表连续子数组的边界&#xff0c;同时更新最大最小值&#xff0c;并且得到答案。解题思路二&#xff1a;单调栈&#xff0c;维护四个数组。minLeft, maxLeft&a…