1、安装依赖

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

2、 新建svg资源文件夹     src/assets/svg

将svg资源放入此目录,接下来会在配置文件中该路径

3、vue-cli 脚手架项目3.x 以上配置  vue.config.js

 1 const path = require('path')
2 module.exports = {
3 chainWebpack: config => {
4 // svg rule loader
5 const svgRule = config.module.rule('svg') // 找到svg-loader
6 svgRule.uses.clear() // 清除已有的loader, 如果不这样做会添加在此loader之后
7 svgRule.exclude.add(/node_modules/) // 正则匹配排除node_modules目录
8 svgRule // 添加svg新的loader处理
9 .test(/\.svg$/)
10 .use('svg-sprite-loader')
11 .loader('svg-sprite-loader')
12 .options({
13 symbolId: 'icon-[name]',
14 })
15 // 修改images loader 添加svg处理
16 const imagesRule = config.module.rule('images')
17 imagesRule.exclude.add(path.resolve(__dirname, 'src/assets/svg')) //注意这个路径,为svg资源文件的路径
18 config.module
19 .rule('images')
20 .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
21 }
22 }

4、创建组件  SvgIcon.vue  ( src/compoments/SvgIcon.vue )

 1 <template>
2 <svg :class="svgClass" aria-hidden="true">
3 <use :xlink:href="iconName"></use>
4 </svg>
5 </template>
6
7 <script>
8 export default {
9 name: 'svg-icon',
10 props: {
11 iconClass: {
12 type: String,
13 required: true
14 },
15 className: {
16 type: String
17 }
18 },
19 computed: {
20 iconName () {
21 return `#icon-${this.iconClass}`
22 },
23 svgClass () {
24 if (this.className) {
25 return 'svg-icon ' + this.className
26 } else {
27 return 'svg-icon'
28 }
29 }
30 }
31 }
32 </script>
33
34 <style scoped>
39 </style>

5、组件注册(全局)  (src/utils/iconsSvg.js)

 1 import Vue from 'vue'
2 import SvgIcon from '@/components/SvgIcon' //引入第四步的组件
3
4 // 全局注册组件
5 Vue.component('svg-icon', SvgIcon)
6 // 定义一个加载目录的函数
7 const requireAll = requireContext => requireContext.keys().map(requireContext)
8 const req = require.context('@/assets/svg', false, /\.svg$/) //为svg资源文件的路径
 9 // 加载目录下的所有 svg 文件 10 requireAll(req)

6、引入组件  main.js

import './utils/iconsSvg'

7、使用svg组件
iconClass: svg文件的文件名
className: svg图标的样式类名

 1 <template>
2 <div>
3 <p>小明同学的大头贴</p>
4 <svg-icon iconClass="boy" className="boy"></svg-icon>
5 </div>
6 </template>
7
8 <style scoped>
9 .boy {
10 width: 200px;
11 height: 200px;
12 }
13 </style>

vue中使用svg并设置大小的更多相关文章

  1. 在vue中使用svg sprite

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

  2. Vue中使用百度地图——设置地图标注

    知识点:创建Map实例,为指定的位置设置标注 参考博客:https://www.cnblogs.com/liuswi/p/3994757.html 1.效果图:初始化地图,设置指定经纬度为地图中心点坐 ...

  3. 如何在vue中使用svg

    1.安装依赖 npm install svg-sprite-loader --save-dev 2.在config文件中配置    const path = require('path'); func ...

  4. vue中使用svg字体图标

    1.在src/ 下面新建目录icons,里面新建文件夹svg,和文件index.js .svg用于存放从iconfont下载下来的svg格式的图标,index.js用于引入使用到svg文件和对应的组件 ...

  5. Vue之vue中的data为什么是一个函数+vue中路径别名alias设置

    问题描述 为什么在vue组件中,我们的data属性必须是一个函数,new Vue()中的data除外,因为new Vue中只有一个data属性. 原因 因为我们能抽离出来的组件,肯定是具有复用性的,它 ...

  6. vue中引入.svg图标,使用iconfont图标库

    阿里巴巴的iconfont是一个很好的图标库,海量的素材可以快速满足开发人员日常对图标的诉求,我们采用symbol引用,官方介绍 创建SvgIcon组件 <template> <sv ...

  7. vue中,svg图标添加click事件,部分浏览器不生效

    vue项目中,使用svg图标,但是发现,为svg图标绑定click事件时,部分浏览器会出现,点击没有反应的情况,代码如下: <icon name="icon_add" @cl ...

  8. vue中 使用SVG实现鼠标点击绘图 提示鼠标移动位置 显示绘制坐标位置

    <div class="div1"> <svg id="svg1" xmlns="http://www.w3.org/2000/sv ...

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

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

  10. vue中动态设置echarts画布大小

    document.getElementById('news-shopPagechart').style.height = this.heightpx2+'px'; //heightpx2定义在data ...

随机推荐

  1. HCK 、PCLK、FCLK的区别

    HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt control ...

  2. 《Unix/Linux系统编程》第十周学习笔记

    <Unix/Linux系统编程>第十周学习笔记 块设备I/O和缓冲区管理 解释块设备I/O的原理和I/O缓冲的优点 I/O缓冲区:内核中的一系列NBUF缓冲区用作缓冲区缓存.每个缓冲区用一 ...

  3. JAVA获取MultipartFile文件的MD5

    Java获取文件的MD5,核心都是通过JAVA自带的MessageDigest类来实现. 获取文件MD5值主要分为三个步骤: 第一步获取文件的byte信息, 第二步通过MessageDigest类进行 ...

  4. 插入Mybatis教学

    ------------恢复内容开始------------ 1.Mybatis的CRUD 首先第一点要注意: namespace中的包名称,一定要和mapper接口的包名称要一一对应. 有上面的图可 ...

  5. WSL安装Ubuntu 22.04 (1)

    1. 安装WSL WSL是适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具.实用工具和应用程序 - 且不会产生传统虚拟机或双启动 ...

  6. arpspoof、driftnet工具使用

    一.arpspoof.driftnet工具安装: 在kali liux中: 安装命令:apt install dsniff      apt install driftnet 二.使用arpspoof ...

  7. sql 查询大数据 常用 50列优化

    大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到. 下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能 ...

  8. 9. 实现包括前端后台的预约洗狗功能 - 使用Power Automate发送预约邮件 - 使用Power Automate发送带选择按钮(option)的邮件

    ​ 除了发送普通的电子邮件外,我们还可以选择发送带选项的电子邮件来得到客户的反馈,下面我们就一起来创建带有选择功能的电子邮件吧. 1. 打开我们的Power Portal,在左侧导航栏选择流,点击左上 ...

  9. redis保存数据

    转载: https://blog.csdn.net/y510662669/article/details/106677717

  10. uni-popup 遮不住头部标题的解决办法

    要做一个小程序,会有弹窗,但是uni-app的API组件uni.showModal不足以满足我的需求,于是我用HBuilderX引入了uni-popup. 代码是这样的 <button @cli ...