Vue3中使用svg
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的更多相关文章
- vue3 vite2 封装 SVG 图标组件 - 基于 vite 创建 vue3 全家桶项目续篇
在<基于 vite 创建 vue3 全家桶>一文整合了 Element Plus,并将 Element Plus 中提供的图标进行全局注册,这样可以很方便的延续 Element UI 的风 ...
- vue3中使用computed
演示示例(vant组件库的轮播图): <van-swipe :loop="false" :width="150" class="my-Swipe ...
- HTML中的SVG
HTML5中的SVG是Scalable Vector Graphic的简称,是一种用来绘制矢量图的HTML5标签,由万维网联盟定制,是一个基于可扩展标记语言,用于绘制二维可缩放矢量图形. 是一种使用X ...
- HTML5中使用SVG
SVG 即 Scalable Vector Graphics,是一种用来绘制矢量图的 HTML5 标签.你只需定义好XML属性,就能获得一致的图像元素. 使用SVG之前先将标签加入到HTML body ...
- HTML5中的SVG
* SVG * 基本内容 * SVG并不属于HTML5专有内容 * HTML5提供有关SVG原生的内容 * 在HTML5出现之前,就有SVG内容 * SVG,简单来说就是矢量图 * SVG文件的扩展名 ...
- html5 中的SVG 和canvas
想到昨天看资料的时候,发现html5 中的SVG 和canvas 都可以表示图形,那它们到底有哪些区别呢?该如何正确的使用它们呢? 1.SVG:可缩放矢量图形,(Scalable Vector Gra ...
- Android中使用SVG矢量图(一)
SVG矢量图介绍 首先要解释下什么是矢量图像,什么是位图图像? 1.矢量图像:SVG (Scalable Vector Graphics, 可伸缩矢量图形) 是W3C 推出的一种开放标准的文本式矢量图 ...
- 在vue中使用svg sprite
概述 这几天研究了一下在vue中使用svg sprite,有些心得,记录下来,供以后开发时参考,相信对其它人也有用. 在vue中导入svg 在vue中导入svg的方法有很多种,比如在img标签的src ...
- 在 React、Vue项目中使用 SVG
在一些现代的扁平化设计网站,特别是移动端网站,经常会包含许多简单而清晰的小图标,例如网站图标.用户的默认头像.移动端网页首页底部固定的切换栏等,这些小图标一般都是由美工做好,可能会放到精灵图上,前端再 ...
- 1. svg学习笔记-在网页中使用svg
在网页中使用svg有以下三种方式 1. svg归根结底来说是一种图像格式,虽然有别于jpeg,gif,png等位图图像格式,所以在网页中能嵌入图像的地方都可以嵌入svg,例如将svg文件设置为< ...
随机推荐
- Restcloud ETL开箱即用-永久免费
2022年4月18日,国内领先的数据集成企业RestCloud发布了全新的ETL社区版本. RestCloud ETL社区版是一款完全国产化自主研发创新的全WEB化.开箱即用.永久免费的数据集成工具, ...
- 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 ...
- GFOJ-1808 牛奶访客
题面 题目描述 Farmer John 计划建造 \(N\)(\(1 \leq N \leq 10^5\))个农场,用 \(N−1\) 条道路连接,构成一棵树(也就是说,所有农场之间都互相可以到达,并 ...
- win10专业版电脑桌面调整分辨率的问题
有些电脑基地的用户想要设置win10专业版系统的电脑屏幕分辨率,但是不知道怎么弄,win10系统分辨率如何调整呢?今天,技术员小编就来分享具体的设置方法. 分辨率调整方法: 1.首先鼠标右键点击电脑桌 ...
- 10Java基础之static
static 它叫静态,可以修饰成员变量.成员方法. 成员变量按照有无static修饰,分为两种: 类变量 实例变量(对象的变量) 在类中,有static修饰的变量叫做类变量,也称为静态变量.它的特点 ...
- 8种品牌PLC单片机实现Modbus TCP以太网通信协议服务器视频教程
8种品牌PLC单片机实现Modbus TCP以太网通信协议服务器视频教程 一.罗克韦尔AB Micro850系列PLC实现Modbus TCP以太网通信协议服务器视频教程:罗克韦尔AB Micro8 ...
- 关于SQL脚本中的 from where and 1=0 的写法
where 1=0; 这个条件始终为false,结果不会返回任何数据,只有表结构,可用于快速建表 "SELECT * FROM XXX WHERE 1 = 0"; 该select语 ...
- 【渲染流水线】主线索引-从数据到图像以UnityURP为例
[从UnityURP开始探索游戏渲染]专栏-直达 有了开篇的渲染管线和渲染流水线的基本概念,接下来先从原理上看看渲染流水线是怎么运作的,然后再看看UnityURP是对应是怎么实现的,最后再看Unity ...
- git 重命名文件夹
文件夹名称: game 想要修改名称为: gamesdk git mv game gamesdkgit commit -m 'rename dir game to gamesdk'git push o ...
- PHP 的 MVC 框架原理及常见框架学习
在PHP开发中,选择合适的框架有助于加快软件开发速度,节省宝贵的项目时间,并允许开发人员专注于功能的实现. 换句话说,流行的 PHP 框架有助于加速应用程序开发(RAD)的过程.这些 Web 框架提供 ...