1)安装插件

npm install svg-sprite-loader --save-dev

2)封装svgIcon组件

在componemts里新建svgIcon文件夹,新建index.vue,封装成组件

<template>
<svg :class="svgClass" aria-hidden="true">
<use :xlink:href="iconName" />
</svg>
</template> <script>
export default {
name: "svgIcon",
props: {
iconClass: {
type: String,
required: true,
},
className: {
type: String,
default: '',
},
},
computed: {
iconName() {
return `#icon-${this.iconClass}`
},
svgClass() {
if (this.className) {
return 'svg-icon ' + this.className
} else {
return 'svg-icon'
}
},
}
}
</script> <style scoped>
.svg-icon {
width: 1em;
height: 1em;
fill: currentColor;
overflow: hidden;
}
</style>

3)在src下新建icons文件夹,此文件夹下新建svg文件夹。其中svg文件夹存放所有的svg文件

4)在icons下新建index.js,由于配置svg

import Vue from 'vue'
import SvgIcon from '@/components/svgIcon' Vue.component('svg-icon', SvgIcon) const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context('./svg', false, /\.svg$/)
requireAll(req)

5)在svg文件夹下新建user.svg。打开阿里图标仓库,找一个用户的图标的svg并复制,粘贴到user.svg中

6)在vue.config.js添加下面的内容

const path = require('path')

function resolve(dir) {
return path.join(__dirname, '.', dir)
} module.exports = {
chainWebpack: config => {
config.module.rules.delete("svg"); //重点:删除默认配置中处理svg,
config.module
.rule('svg-sprite-loader')
.test(/\.svg$/)
.include
.add(resolve('src/icons')) //处理svg目录
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]'
})
},
}

7)在main.js里引入

import './icons'

8)在页面中使用

 svg图标<svg-icon icon-class="user"></svg-icon>

其中icon-class指定的是svg文件的名字。查看页面如下:

Vue3中使用svg的更多相关文章

  1. vue3 vite2 封装 SVG 图标组件 - 基于 vite 创建 vue3 全家桶项目续篇

    在<基于 vite 创建 vue3 全家桶>一文整合了 Element Plus,并将 Element Plus 中提供的图标进行全局注册,这样可以很方便的延续 Element UI 的风 ...

  2. vue3中使用computed

    演示示例(vant组件库的轮播图): <van-swipe :loop="false" :width="150" class="my-Swipe ...

  3. HTML中的SVG

    HTML5中的SVG是Scalable Vector Graphic的简称,是一种用来绘制矢量图的HTML5标签,由万维网联盟定制,是一个基于可扩展标记语言,用于绘制二维可缩放矢量图形. 是一种使用X ...

  4. HTML5中使用SVG

    SVG 即 Scalable Vector Graphics,是一种用来绘制矢量图的 HTML5 标签.你只需定义好XML属性,就能获得一致的图像元素. 使用SVG之前先将标签加入到HTML body ...

  5. HTML5中的SVG

    * SVG * 基本内容 * SVG并不属于HTML5专有内容 * HTML5提供有关SVG原生的内容 * 在HTML5出现之前,就有SVG内容 * SVG,简单来说就是矢量图 * SVG文件的扩展名 ...

  6. html5 中的SVG 和canvas

    想到昨天看资料的时候,发现html5 中的SVG 和canvas 都可以表示图形,那它们到底有哪些区别呢?该如何正确的使用它们呢? 1.SVG:可缩放矢量图形,(Scalable Vector Gra ...

  7. Android中使用SVG矢量图(一)

    SVG矢量图介绍 首先要解释下什么是矢量图像,什么是位图图像? 1.矢量图像:SVG (Scalable Vector Graphics, 可伸缩矢量图形) 是W3C 推出的一种开放标准的文本式矢量图 ...

  8. 在vue中使用svg sprite

    概述 这几天研究了一下在vue中使用svg sprite,有些心得,记录下来,供以后开发时参考,相信对其它人也有用. 在vue中导入svg 在vue中导入svg的方法有很多种,比如在img标签的src ...

  9. 在 React、Vue项目中使用 SVG

    在一些现代的扁平化设计网站,特别是移动端网站,经常会包含许多简单而清晰的小图标,例如网站图标.用户的默认头像.移动端网页首页底部固定的切换栏等,这些小图标一般都是由美工做好,可能会放到精灵图上,前端再 ...

  10. 1. svg学习笔记-在网页中使用svg

    在网页中使用svg有以下三种方式 1. svg归根结底来说是一种图像格式,虽然有别于jpeg,gif,png等位图图像格式,所以在网页中能嵌入图像的地方都可以嵌入svg,例如将svg文件设置为< ...

随机推荐

  1. Restcloud ETL开箱即用-永久免费

    2022年4月18日,国内领先的数据集成企业RestCloud发布了全新的ETL社区版本. RestCloud ETL社区版是一款完全国产化自主研发创新的全WEB化.开箱即用.永久免费的数据集成工具, ...

  2. SciTech-Mathematics-Probability+Statistics-7 Steps to Mastering Statistics for Data Science

    7 Steps to Mastering Statistics for Data Science BY BALA PRIYA CPOSTED ON JULY 19, 2024 A strong fou ...

  3. GFOJ-1808 牛奶访客

    题面 题目描述 Farmer John 计划建造 \(N\)(\(1 \leq N \leq 10^5\))个农场,用 \(N−1\) 条道路连接,构成一棵树(也就是说,所有农场之间都互相可以到达,并 ...

  4. win10专业版电脑桌面调整分辨率的问题

    有些电脑基地的用户想要设置win10专业版系统的电脑屏幕分辨率,但是不知道怎么弄,win10系统分辨率如何调整呢?今天,技术员小编就来分享具体的设置方法. 分辨率调整方法: 1.首先鼠标右键点击电脑桌 ...

  5. 10Java基础之static

    static 它叫静态,可以修饰成员变量.成员方法. 成员变量按照有无static修饰,分为两种: 类变量 实例变量(对象的变量) 在类中,有static修饰的变量叫做类变量,也称为静态变量.它的特点 ...

  6. 8种品牌PLC单片机实现Modbus TCP以太网通信协议服务器视频教程

    8种品牌PLC单片机实现Modbus TCP以太网通信协议服务器视频教程 一.罗克韦尔AB Micro850系列PLC实现Modbus TCP以太网通信协议​服务器视频教程:罗克韦尔AB Micro8 ...

  7. 关于SQL脚本中的 from where and 1=0 的写法

    where 1=0; 这个条件始终为false,结果不会返回任何数据,只有表结构,可用于快速建表 "SELECT * FROM XXX WHERE 1 = 0"; 该select语 ...

  8. 【渲染流水线】主线索引-从数据到图像以UnityURP为例

    [从UnityURP开始探索游戏渲染]专栏-直达 有了开篇的渲染管线和渲染流水线的基本概念,接下来先从原理上看看渲染流水线是怎么运作的,然后再看看UnityURP是对应是怎么实现的,最后再看Unity ...

  9. git 重命名文件夹

    文件夹名称: game 想要修改名称为: gamesdk git mv game gamesdkgit commit -m 'rename dir game to gamesdk'git push o ...

  10. PHP 的 MVC 框架原理及常见框架学习

    在PHP开发中,选择合适的框架有助于加快软件开发速度,节省宝贵的项目时间,并允许开发人员专注于功能的实现. 换句话说,流行的 PHP 框架有助于加速应用程序开发(RAD)的过程.这些 Web 框架提供 ...