首页 > 其他 > 详细

VUE使用svg字体图标

时间:2019-09-19 15:32:55      阅读:104      评论:0      收藏:0      [点我收藏+]

vue使用字体图标svg,在src下新建目录icons文件,再在icons文件下新建svg文件,在阿里ico中将字体的svg图片下载下来即可:例如from.svg

在组件中新建icon-svg.vue组件

<template>
  <svg class="svg-icon" aria-hidden="true">
    <use :xlink:href="iconName"></use>
  </svg>
</template>

<script>
  export default {
    name: ‘icon-svg‘,
    props: {
      iconClass: {
        type: String,
        required: true
      }
    },
    computed: {
      iconName() {
        return `#icon-${this.iconClass}`
      }
    }
  }
</script>

<style scoped lang="stylus">
  .svg-icon {
    width 1.1em
    height 1.1em
    vertical-align -.2em
    fill currentColor
    overflow hidden
  }
</style>

在iicon的js中使用该组件icon-svg.vue组件

import Vue from ‘vue‘
import IconSvg from ‘@/components/icon-svg‘
/*
require.context("./test", false, /.test.js$/);这行代码就会去 test 文件夹(不包含子目录)
下面的找所有文件名以 .test.js 结尾的文件能被 require 的文件。更直白的说就是 我们可以通过正则匹配引入相应的文件模块。
require.context有三个参数:
directory:说明需要检索的目录
useSubdirectories:是否检索子目录
regExp: 匹配文件的正则表达式
 */
//全局注册iconsvg组件
Vue.component(‘svg-icon‘, IconSvg)

const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context(‘./svg‘, false, /\.svg$/)
requireAll(req)

main.js引入全局图标(后面的index.js可以省略)

// 全局图标
import ‘./icons/index.js‘

全局组件使用方式

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

SVG安装

npm i svg-sprite-loader --save

配置相关信息  在build/webpack.base.conf.js文件中,加入

{
        test: /\.svg$/,
        loader: ‘svg-sprite-loader‘,
        include: [resolve(‘src/icons‘)],
        options: {
          symbolId: ‘icon-[name]‘
        }
},

exclude: [resolve(‘src/icons‘)],

  技术分享图片

相关学习链接:https://www.jianshu.com/p/5b2c7757fc19

VUE使用svg字体图标

原文:https://www.cnblogs.com/wjw-/p/11549774.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!