美文网首页
vue-cli3使用svg图标

vue-cli3使用svg图标

作者: 这里是廖同学 | 来源:发表于2019-10-17 23:43 被阅读0次

1、添加依赖

npm install svg-sprite-loader file-loader -D

2、添加IconSvg组件

在components目录下新增一个IconSvg.vue文件


<template>
  <svg class="svg-icon" aria-hidden="true" v-on="$listeners">
    <use :xlink:href="iconName" />
  </svg>
</template>
 
<script>
export default {
  name: "icon-svg",
  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>
.svg-icon {
  /* 
  这里可以自定义宽高
  width: 1em;
  height: 1em; 
  */
  width: 100%;
  height: 100%;
  vertical-align: -0.15em;
  fill: currentColor;
  overflow: hidden;
}
</style>

3、添加icon-svg组件

在main.js中 新增全局组件


//引入svg组件
import IconSvg from './components/IconSvg'

// //全局注册icon-svg
Vue.component('icon-svg', IconSvg)

4、配置vue.config.js

注意点: 这里我把.svg图标放在了/src/assets/icons目录下 如果要修改存放图标目录的话 则记得修改配置

const path = require('path')
module.exports = {
  /**这里之后,还有第一行的path是跟svg有关系的配置**/
  chainWebpack: config => {
    const svgRule = config.module.rule('svg')
    // 清除已有的所有 loader。
    // 如果你不这样做,接下来的 loader 会附加在该规则现有的 loader 之后。
    svgRule.uses.clear()
    svgRule
      .test(/\.svg$/)
      // 配置icons的目录  我这里默认放在了 /src/assets/icons 目录下  如要修改 记得更换你的目录
      .include.add(path.resolve(__dirname, './src/assets/icons'))
      .end()
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({
        symbolId: 'icon-[name]'
      })
    const fileRule = config.module.rule('file')
    fileRule.uses.clear()
    fileRule
      .test(/\.svg$/)
      // 配置icons的目录  我这里默认放在了 /src/assets/icons 目录下  如要修改 记得更换你的目录
      .exclude.add(path.resolve(__dirname, './src/assets/icons'))
      .end()
      .use('file-loader')
      .loader('file-loader')
  }
}

5、使用方式

导入.svg图标

import "@/assets/icons/aa.svg"

使用图标
注意 这里不要加.svg后缀 直接使用导入的名称即可

<icon-svg icon-class="aa" />

相关文章

  • vue-cli3使用svg图标

    1、添加依赖 npm install svg-sprite-loader file-loader -D 2、添加...

  • AGS JS开发-以JSON参数构建地图渲染之四

    使用SVG图标符号 1.环境说明 ArcGIS 10.4.1 JS API 3.15 2.SVG图标介绍 SVG是...

  • 封装svg组件

    svg图标的使用基于这次项目的图标使用本地的svg图片。普通的使用方式 避免每次写这三行代码,封装一个svg组件 ...

  • 使用 iconfont 来引用 font class 图标

    之前项目中一直使用美工给的 svg 图标,但是有几个缺点: svg 图标无法很方便的定义颜色,大小。 svg 图标...

  • 开发技巧分享—给 FileMaker 装备 SVG 高清无码大图

    SVG 图标的优势 FileMaker 自 14 版开始支持 SVG 格式的图标。在之前的版本,只能使用 png ...

  • vue-cli3使用svg的最佳实践

    目录 iconfont的三种使用方式及其优缺点 封装svg组件 svg雪碧图 自动导入svg图标 封装svg组件 ...

  • vue 使用svg图标

    之前做项目中,使用的小图标都是使用字体图标,现在这个项目因为毕竟小,就想使用svg来展示svg。因为在学习的过程中...

  • Iconfont应用规范

    SVG图标绘制 一、图标绘制范围 绘制工具:AI、SKETCH 另外不建议使用PS,因为虽然PS也可以导出SVG,...

  • android apk瘦身

    apk打包流程图 1,SVG图片替换PNG图片 使用svg图注意事项: 1 svg图适用于小图标,svg宽高 小于...

  • 在Material UI中使用svg图标

    这篇文章就讲两个事儿: 如何在一个组件中使用svg图标。 如何将svg图标作为全局资源使用,而不仅限于一个或几个组...

网友评论

      本文标题:vue-cli3使用svg图标

      本文链接:https://www.haomeiwen.com/subject/hxebmctx.html