就是类似于这种小图标的使用

步骤来了~

① 安装依赖

 npm i svg-sprite-loader@4.1.3

② 配置

项目地下创建vue.config.js

const path = require('path')function resolve(dir) {return path.join(__dirname, dir)
}module.exports = {//  省略其他配置chainWebpack(config) {// set svg-sprite-loaderconfig.module.rule('svg').exclude.add(resolve('src/icons')).end()config.module.rule('icons').test(/\.svg$/).include.add(resolve('src/icons')).end().use('svg-sprite-loader').loader('svg-sprite-loader').options({symbolId: 'icon-[name]'}).end()}
}

③ 创建文件

一 、src/components/svgIcon/index.vue

<template><div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners" /><svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners"><use :xlink:href="iconName" /></svg>
</template><script>
// doc: https://panjiachen.github.io/vue-element-admin-site/feature/component/svg-icon.html#usage
import { isExternal } from '@/utils/validate'export default {name: 'SvgIcon',props: {iconClass: {type: String,required: true},className: {type: String,default: ''}},computed: {isExternal() {return isExternal(this.iconClass)},iconName() {return `#icon-${this.iconClass}`},svgClass() {if (this.className) {return 'svg-icon ' + this.className} else {return 'svg-icon'}},styleExternalIcon() {return {mask: `url(${this.iconClass}) no-repeat 50% 50%`,'-webkit-mask': `url(${this.iconClass}) no-repeat 50% 50%`}}}
}
</script>
<style scoped>
.svg-icon {width: 1em;height: 1em;vertical-align: -0.15em;fill: currentColor;overflow: hidden;
}
.svg-external-icon {background-color: currentColor;mask-size: cover!important;display: inline-block;
}
</style>

二、 这里需要引入一个utils/validate.js
检验规则

/*** Created by PanJiaChen on 16/11/18.*//*** @param {string} path* @returns {Boolean}*/export function isExternal(path) {return /^(https?:|mailto:|tel:)/.test(path)}/*** @param {string} str* @returns {Boolean}*/export function validUsername(str) {const valid_map = ['admin', 'editor']return valid_map.indexOf(str.trim()) >= 0}/*** @param {string} url* @returns {Boolean}*/export function validURL(url) {const reg = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/return reg.test(url)}/*** @param {string} str* @returns {Boolean}*/export function validLowerCase(str) {const reg = /^[a-z]+$/return reg.test(str)}/*** @param {string} str* @returns {Boolean}*/export function validUpperCase(str) {const reg = /^[A-Z]+$/return reg.test(str)}/*** @param {string} str* @returns {Boolean}*/export function validAlphabets(str) {const reg = /^[A-Za-z]+$/return reg.test(str)}/*** @param {string} email* @returns {Boolean}*/export function validEmail(email) {const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/return reg.test(email)}/*** @param {string} str* @returns {Boolean}*/export function isString(str) {if (typeof str === 'string' || str instanceof String) {return true}return false}/*** @param {Array} arg* @returns {Boolean}*/export function isArray(arg) {if (typeof Array.isArray === 'undefined') {return Object.prototype.toString.call(arg) === '[object Array]'}return Array.isArray(arg)}

三、 在src目录下创建文件夹

svg文件是你项目用到的图标文件.svg,可以在iconfont下载

src/icons/index.js

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

④ 全局引入

main.js

import './icons' // icon

⑤ 组件使用

    <div><svg-icon icon-class="language" /></div>

svg-icon使用教程相关推荐

  1. HTML/CSS——网页SVG ICON(小图标)解决方案

    一.基本概念 SVG: SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用来定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大 ...

  2. SVG 图像入门教程

    http://www.ruanyifeng.com/blog/2018/08/svg.html 一.概述 SVG 是一种基于 XML 语法的图像格式,全称是可缩放矢量图(Scalable Vector ...

  3. svg.js使用教程

    在日常web开发过程中,我们会需要显示一些图形化的元素,使用div+css.ps图片是常见的实现方式. 但使用svg来绘制可能更加合适,SVG是可缩放矢量图形,有一些预定义的形状元素,可被开发者使用和 ...

  4. android svg 线条动画教程,简单的SVG线条动画

    [TOC] 看到网页中那种有如写字般的动画,觉得挺好玩的,就找了下制作方法,也比较简单,在此记录一下; 先上几张图看看: 简单的线条动画 ps4 用到的属性 stroke 定义边框颜色值; strok ...

  5. android svg 线条动画教程,SVG之旅:SVG线条动画实现原理

    对于SVG路径动画,我相信大家都看到过这样的动效:一条线就像它自己画自己.非常的酷.@Jake Archibald是这项技巧的先驱,他在自己的博客写了一篇非常好的文章来介绍SVG的线条动画是如何实现的 ...

  6. svg载入html,SVG系列教程:SVG简介与嵌入HTML页面的方式

    随着技术向前的推进,SVG相关的讨论也越渐频繁.为了紧跟时代的步伐,我也开始步入SVG相关技术的探索与学习之中.从这篇文章开始会在W3cplus站点上陆续向大家推出有关于SVG相关的教程.译文或案例等 ...

  7. Vue3+TS使用element-plus 动态Icon图标

    目录 1,前言 2,使用 2.1,方式一 2.2,方式二 1,前言 源于一段话 Element Plus 团队正在将原有组件内的 Font Icon 向 SVG Icon 迁移,请多多留意更新日志, ...

  8. 自定义Font Icon

    前段时间在<@font-face制作Web Icon>一文收集了三种webfont通过CSS3的@font-face来制作Icon图标.现在在网上最为流行的是@robmadole和@sup ...

  9. 创建和导出SVG的技巧

    我们在响应式网页设计的工作中经常用到SVG,这个过程通常包括设计阶段和开发阶段.设计阶段通常是由不懂编程的设计师们完成的.因为原生SVG作为一种图像格式和文档格式,在图形编辑器中创建SVG效果的每一步 ...

  10. SVG关注复杂图形的网页绘制技术

    SVG 是使用 XML 来描述二维图形和绘图程序的语言. 学习之前应具备的基础知识: 继续学习之前,你应该对以下内容有基本的了解: HTML XML 基础 如果希望首先学习这些内容,请在本站的首页选择 ...

最新文章

  1. python入门需要多久-目前Python学习需要多长时间?老男孩Python入门培训
  2. Spring核心技术之IOC容器(一):IOC容器与Bean简介
  3. Fedora Core 4配置本地yum源
  4. matlab 表格控件,[转载]matlab读取excel数据并显示在excel(activex控件)中
  5. 怎么找出电脑里隐藏的流氓软件_9成人都不知道的秘密!那些隐藏在你电脑里的“大象”!...
  6. Most Unstable Array CodeForces - 1353A(数学+贪心+建设性算法)
  7. 伦斯勒理工大学计算机专业好申请吗,2020年伦斯勒理工学院申请难度
  8. c语言int 转bool_C++代码实现逆波兰式_C 语言
  9. 三方协议接收节点不存在_【花开法务】没有保密协议是否意味着员工不存在保密义务?...
  10. Python 各种报错解释及处理方法
  11. Undelete Plus 2.53
  12. Atitit 微服务之道 attilax著 1. 什么是微服务架构? 1 1.1. 、微服务与SOA的关系 :微服务架架构师面向服务架构(SOA)的一种特定实现 2 1.2. 微服务与康威定律 2 1
  13. java 关键字提取_提取Java关键字
  14. Linux CentOS 7安装Oracle11g超完美教程
  15. 压垮硬盘的最后一次备份
  16. math.abs() java_Java中使用Math.abs你入坑了?
  17. 【Unity3D实战】摇摆直升机开发实战(一)
  18. 收藏 | 堪称神器的42款Chrome插件
  19. 基于java的高校运动会管理系统的设计与实现--毕业论文(可仅作参考)
  20. 新手入门 Python 的学习网站

热门文章

  1. dockerfile 执行原理_DockerFile解析
  2. 业界 | 如果技术从业者上岗前也要宣誓,一份给程序员的希波克拉底誓言
  3. linux(ubuntu)安装ssh服务,putty使用教程
  4. c语言周欢,安徽遴选20名教师参加第一届长三角民办高校教师教学技能大赛
  5. 2021年中国服装行业发展现状及未来十大发展趋势分析[图]
  6. 东莞虎门武山沙车灯升级,灯光年审不过升级,VV6改灯
  7. input标签的事件之oninput事件
  8. dcl java_Java内存模型之从JVM角度分析DCL
  9. 蓝桥杯 ALGO-200 算法训练 预测身高
  10. 核爆级新闻,马云头大...