vue3使用svg(无废话版)

news2024/9/21 4:27:48

1.去阿里云矢量图标库,复制svg代码

2.新建一个phone.svg文件(存放在assets/icons/phone.svg),内容是刚刚复制的svg代码

<svg t="1722592653925" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4256" width="200" height="200"><path d="M942.08 738.304c-25.6-23.552-55.296-47.104-76.8-61.44-27.648-19.456-57.344-38.912-84.992-51.2-43.008-21.504-59.392-25.6-70.656-25.6-19.456 0-35.84 10.24-51.2 29.696-8.192 12.288-17.408 29.696-23.552 45.056-4.096 10.24-12.288 27.648-17.408 33.792-8.192-2.048-31.744-12.288-70.656-37.888-35.84-25.6-74.752-57.344-104.448-84.992-29.696-29.696-59.392-68.608-84.992-104.448-25.6-37.888-35.84-61.44-37.888-70.656 6.144-4.096 23.552-12.288 33.792-17.408 15.36-6.144 31.744-12.288 45.056-23.552 21.504-15.36 29.696-31.744 29.696-51.2 0-10.24-2.048-27.648-25.6-70.656-12.288-25.6-31.744-55.296-51.2-84.992-15.36-21.504-38.912-51.2-61.44-76.8-27.648-27.648-47.104-40.96-66.56-40.96-47.104 0-100.352 68.608-114.688 87.04-19.456 25.6-66.56 96.256-66.56 159.744 0 59.392 40.96 138.24 74.752 194.56 45.056 72.704 108.544 153.6 177.152 224.256l21.504 21.504 0 0c70.656 68.608 149.504 132.096 224.256 177.152 23.552 15.36 51.2 29.696 78.848 43.008l0 0c4.096 2.048 6.144 2.048 10.24 2.048 15.36 0 27.648-12.288 27.648-27.648 0-10.24-6.144-21.504-17.408-25.6-21.504-10.24-45.056-23.552-70.656-38.912-70.656-43.008-145.408-102.4-212.992-168.96l-21.504-21.504c-66.56-68.608-125.952-143.36-168.96-212.992-43.008-68.608-66.56-128-66.56-163.84 0-31.744 19.456-78.848 53.248-123.904 15.36-19.456 29.696-37.888 45.056-51.2 15.36-13.312 23.552-17.408 27.648-17.408 10.24 4.096 43.008 31.744 87.04 98.304 17.408 25.6 33.792 51.2 45.056 74.752 15.36 27.648 17.408 40.96 17.408 43.008 0 0-4.096 4.096-10.24 8.192-8.192 4.096-21.504 10.24-31.744 15.36-15.36 6.144-27.648 12.288-40.96 19.456-19.456 12.288-27.648 27.648-27.648 45.056 0 8.192 0 33.792 49.152 104.448 25.6 37.888 59.392 80.896 92.16 112.64l0 0c31.744 31.744 74.752 66.56 112.64 92.16 70.656 47.104 96.256 49.152 104.448 49.152l0 0c17.408 0 31.744-8.192 45.056-27.648 8.192-10.24 12.288-25.6 19.456-40.96 4.096-10.24 10.24-23.552 15.36-31.744 6.144-4.096 10.24-6.144 10.24-6.144 2.048 0 15.36 2.048 43.008 17.408 21.504 12.288 49.152 27.648 74.752 45.056 63.488 45.056 94.208 76.8 98.304 87.04-2.048 4.096-6.144 12.288-17.408 27.648-12.288 15.36-31.744 31.744-51.2 45.056-29.696 21.504-61.44 38.912-87.04 47.104l0 0c-10.24 4.096-17.408 15.36-17.408 25.6 0 15.36 12.288 27.648 27.648 27.648 2.048 0 4.096 0 6.144-2.048l0 0c2.048 0 2.048 0 4.096-2.048l0 0c45.056-15.36 82.944-40.96 102.4-55.296 21.504-15.36 87.04-70.656 87.04-115.712C982.016 785.408 969.728 765.952 942.08 738.304z" p-id="4257"></path></svg>

3.下载vite-plugin-svg-icons插件

4.在vite.config.json中配置,其中的"src/assets/icons"就是我们.svg文件的存放地址

import { createSvgIconsPlugin } from "vite-plugin-svg-icons";
plugins: [
    createSvgIconsPlugin({
      iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
      symbolId: 'icon-[dir]-[name]'
    })
  ],

5.在入口文件中引入import 'virtual:svg-icons-register';

6.在页面中使用

<svg>
      <use xlink:href="#icon-phone">
      </use>
    </svg>

ps: #icon-是固定的,后面的phone是.svg文件名

7.删除.svg代码中的fill属性,在use标签中加上fill属性可以设置颜色

<template>
  <div class="">
    <svg>
      <use xlink:href="#icon-phone" :fill="svgColor">
      </use>
    </svg>
  </div>
</template>
<script lang="ts" setup>
import { ref } from 'vue';
let svgColor = ref<string>('yellow')
</script>
<style>
</style>

8.效果图

9.封装全局组件

新建svgIcon组件:

<template>
    <div class="">
      <svg :style="{width, height}">
        <use :xlink:href="href" :fill="fill">
        </use>
      </svg>
    </div>
  </template>
  <script lang="ts" setup>
  import { toRefs } from "vue"
  let props = defineProps({
    href: {
        type: String,
        default: '#icon-phone'
    },
    fill: {
        type: String,
        default: '#icon-phone'
    },
    width: {
        type: String,
        default: '30px'
    },
    height: {
        type: String,
        default: '30px'
    }
  })
  let { href, fill, width, height } = toRefs(props)
  </script>
  <style>
  </style>

全局注册

//全局组件
import svgIcon from "@/components/svgIcon/svgIcon.vue"
app.component('svgIcon', svgIcon)

在页面中使用

<template>
  <div class="">
    <svg-icon></svg-icon>
    <svg-icon width="40px" height="40px" fill="red" href="#icon-window"></svg-icon>
  </div>
</template>
<script lang="ts" setup>
</script>
<style>
</style>

效果图

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

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

相关文章

数据失踪?这四款U盘数据恢复利器教你如何避免错误操作与保障安全性

当U盘上的数据不见了&#xff0c;数据恢复软件就像是你的救命稻草。一些好的数据恢复软件还会提供安全的恢复选项&#xff0c;确保在恢复的过程中不会对原来的数据造成损害。接下来&#xff0c;我们就来看看这些顶级的U盘数据恢复软件是怎么帮我们恢复U盘数据的&#xff0c;同时…

红旗E-QM5起火,一汽红旗否认车辆质量问题

近日&#xff0c;据媒体报道&#xff0c;7月31日下午&#xff0c;长春一辆一汽红旗E-QM5发生起火事故。 一汽红旗方面则表示&#xff1a;“现场勘查和初步调查表明&#xff0c;该事件并非因车辆自身质量问题导致自燃。疑似车辆在行驶过程中与路面井盖发生碰撞导致动力电池受损&…

专业130+总分430+浙大浙江大学842考研信号系统与数字电路经验电子信息与通信工程真题,大纲,参考书。

通过接近一年的备考&#xff0c;专业842信号和数电总结130&#xff08;专业课比预期低&#xff09;&#xff0c;总分430如愿上岸浙大&#xff0c;这一路复习走过弯路&#xff0c;淋过雨&#xff0c;也走过大路&#xff0c;风和日丽&#xff0c;总结一些自己的心得&#xff0c;希…

C语言 ——— 学习、使用 strcmp函数 并模拟实现

目录 strcmp函数的功能 学习strcmp函数​编辑 使用strcmp函数 模拟实现strcmp函数 strcmp函数的功能 strcmp函数的功能是字符串比较&#xff0c;两个字符串的对应位置的字符进行比较&#xff0c;直到字符不同或达到终止的 \0 字符为止 举例说明&#xff1a; 字符串1&am…

法制史学习笔记(个人向) Part.7

法制史学习笔记(个人向) Part.7 11. 清朝法律制度 11.1 立法概述 11.1.1 立法指导思想 简单来说是&#xff1a;详译明律&#xff0c;参以国制&#xff1b; 努尔哈赤时期&#xff0c;后金政权处于由习惯法到成文法的过渡过程中&#xff1b;皇太极统治时期&#xff0c;奉行“参…

Linux中vim的基本介绍和使用

善为理者&#xff0c;举其纲&#xff0c;疏其网。 vim 1、vim介绍2、命令模式详情3、底行模式详情4、困难问题5、历史存疑问题6、vim配置问题6、1、配置的原理6、2、一键式配置 1、vim介绍 如果我面想要在Linux上编写代码的话&#xff0c;我就需要vim来帮助我们编写代码。但是…

基于JSP、java、Tomcat三者的项目实战--校园交易网(3)主页--实现修改商品的名字与价格功能(万字爆更)增查改删,三端交互样样齐全

技术支持&#xff1a;JAVA、JSP 服务器&#xff1a;TOMCAT 7.0.86 编程软件&#xff1a;IntelliJ IDEA 2021.1.3 x64 前文几个功能的实现的博客 基于JSP、java、Tomcat、mysql三层交互的项目实战--校园交易网&#xff08;1&#xff09;-项目搭建&#xff08;前期准备工作&am…

Pycharm2023.1安装及其破解(含安装包)

一、下载 安装包 pycharm-professional-2023.1.exe https://www.alipan.com/s/f9WgrwLRbVn 提取码: 0yow 二、安装 三、激活 激活码&#xff1a;pycharm专业版激活码,2025.1月结束_pycharm序列号-CSDN博客 四、汉化

2024年8月2日(安装MySQL,以及各种操作)

一、安装并配置MySQL 1、下载mysql软件包 [rootmysql ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 2、解压 [rootmysql ~]# tar -xf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar 3、检查是否具有mariadb/mysql&…

技术成神之路:设计模式(十一)迭代器模式

前言 迭代器这个词听到并不陌生吧&#xff0c;我们再开发中遍历HashMap 和 HashSet的时候 用到的迭代器和这里的迭代器是一个概念&#xff0c;当然&#xff0c;这个模式不是教你如何去实现的&#xff0c;而是以了解为主。 介绍 迭代器模式&#xff08;Iterator Pattern&#…

携程实习生0506笔试-编程题

解题思路&#xff1a; 看坐标之和&#xff0c;奇数偶数不同字符即可。 解题思路&#xff1a; 题目应该是求连续的k长度最大值&#xff0c;遍历比较字符串&#xff0c;最后再取模。 import java.util.Scanner;public class Main {public static void main(String[] args) {Scann…

Keysight(原Agilent) E4980AL 精密 LCR 表特性与技术指标

Keysight(原Agilent) E4980AL 精密 LCR 表为基础 LCR 表树立了行业标准&#xff0c;可在多个频率范围内提供更佳的精度、速度和通用性。E4980AL 结合了种类繁多的附件&#xff0c;适用于一般研发和生产环境中的各种元件和材料测量。也可通过频率升级而提升投资回报率。 Keysig…

媲美Element Plus JuanTree终极实战:虚拟滚动

JuanTree组件功能迭代终于来到了终章——虚拟滚动实现。 有了前面学习的铺垫&#xff1a;vue大数据量列表渲染性能优化&#xff1a;虚拟滚动原理 把示例的实现用到JuanTree组件就变得非常的简单了。 功能视频演示&#xff1a; 自研Vue3 Tree组件 - 虚拟滚动功能演示 先来看效…

文档在线预览:keking/kkFileView踩坑记

文章目录 一、概述1、官方文档2、使用 二、部署服务1、传统部署方式&#xff08;1&#xff09;环境要求&#xff08;2&#xff09;生成部署包 2、docker部署方式 三、踩坑1、预览并发问题&预览首次打开慢2、字体问题乱码3、水印问题4、使用nginx代理5、docker部署指定配置 …

stm32 RAM for Algorithm问题,已解决

在此界面将 programming Algorithm内的flash remove&#xff0c;然后再重选就能解决

Drools

Drools基本了解 谈谈对业务规则管理系统的了解 举例说明 规则引擎系统是一个规则管理系统&#xff0c;接受数据输入、解释业务规则、根据业务规则做出业务决策的一个系统&#xff0c;其适用场景有贷款风险评估、积分优惠系统、保险理赔系统。规则是由“条件动作”组成&#x…

雅萌五代射频仪拆机图

雅萌五代射频仪拆机图&#xff0c;相对之前的版本&#xff0c;这个射频仪的头部电极部分&#xff0c;进行结构的优化&#xff0c;整个面比较平整光滑&#xff0c;不容易残留凝胶

allegro学习之一

1&#xff09;favorite设置界面 2&#xff09;双单位显示界面设置 3&#xff09;高亮实心显示 4&#xff09;自己设置的favorite 5&#xff09;导线圆滑显示 6&#xff09;plane的使用场景 7&#xff09;add to visibility的方法 8&#xff09;net group的使用 效果图如下&am…

实施运维方案(Word原件)

编写目的&#xff1a; 作为项目运维服务质量管理的总纲&#xff0c;规范和指导公司运维服务质量管理&#xff0c;加强运维服务质量管理的有效性。保证运维服务的整体质量&#xff0c;提升公司运维服务的整体质量水平。使公司能够为客户提供更高质量的运维服务&#xff0c;保障公…

【优选赛事】2024年iCAN大赛AI视觉检测设计挑战赛

iCAN大学生创新创业大赛(以下简称“iCAN大赛”")是一个无固定限制、鼓励原始创新的赛事&#xff0c;自2007年发起至今&#xff0c;得到了广大青年学生的热爱。2010年&#xff0c;iCAN大赛获批《教育部、财政部关于批准2010年度大学生竞赛资助项目的通知》大学生竞赛资助项…