美文网首页
vue项目中使用svg图标

vue项目中使用svg图标

作者: 午后三点的阳光 | 来源:发表于2019-05-22 06:51 被阅读0次
  1. 安装webpack插件svg-sprite-loader
npm install svg-sprite-loader --save-dev
  1. 更改build/webpack.base.conf.js配置文件
{
    test: /\.svg$/,
    loader: 'svg-sprite-loader',
    include: [resolve('src/icons')],
    options: {
        symbolId: 'icon-[name]'
    }
},
{
    test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
    loader: 'url-loader',
    exclude: [resolve('src/icons')],
    options: {
        limit: 10000,
        name: utils.assetsPath('img/[name].[hash:7].[ext]')
    }
}
  1. src/components创建SvgIcon组件
<template>
  <svg :class="svgClass" aria-hidden="true">
    <use :xlink:href="iconName"></use>
  </svg>
</template>

<script>
export default {
  name: 'svg-icon',
  props: {
    iconClass: {
      type: String,
      required: true
    },
    className: {
      type: String
    }
  },
  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;
    vertical-align: -0.15em;
    fill: currentColor;
    overflow: hidden;
  }
</style>
  1. 在src目录下创建icons文件下,文件夹下面有svg文件夹和index.js文件。

index.js文件作用是使用webpack 的require.context自动引入 @/src/icons 下面所有的图标,svg文件夹用于存放svg图标文件

index.js文件:

import Vue from 'vue'
import SvgIcon from '@/components/SvgIcon'// svg组件
// register globally
Vue.component('svg-icon', SvgIcon)
const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context('./svg', false, /\.svg$/)
requireAll(req)
  1. main.js中引入组件
import './icons' // icon
  1. 组件引用
<svg-icon icon-class="xxx" />
//xxx为svg图标文件名

相关文章

  • 项目使用svg图标

    vue-element-admin基础模板中,已经封装好了使用svg图标的组件,此组件在vue-ssr项目中也同样...

  • vue 使用svg图标

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

  • 【SVG】Vue项目中使用SVG作为图标的组件(svg-spri

    本文目标 在Vue的前端项目开发中,我们在很多地方都会使用到图标,而当前SVG格式的图标被越来越多的采用。 在开发...

  • 如何管理系统中的图标?

    1.雪碧图2.svg 多侧图标3.font 单侧图标 vue.config.js 中自定义vue-svg-load...

  • 封装svg组件

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

  • 使用 iconfont 来引用 font class 图标

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

  • vue中 svg图标的使用

    项目地址:https://github.com/cenkai88/v...求star~~ 个人的第一个vue组件,...

  • Vue使用SVG图标

    一、安装依赖 二、修改规则和新增规则,vue.config.js 三、使用 四、自动导入 五、组件化 六、使用 在...

  • vue项目中使用svg图标

    1.打开阿里巴巴字符图标库网站选择自己需要的图标 https://www.iconfont.cn/home/ind...

  • vue项目中使用svg图标

    安装webpack插件svg-sprite-loader 更改build/webpack.base.conf.js...

网友评论

      本文标题:vue项目中使用svg图标

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