美文网首页
vue中使用svg

vue中使用svg

作者: Yl奋斗的小白 | 来源:发表于2020-01-09 15:39 被阅读0次

创建以下文件夹

安装svg-sprite-loader:       npm i -D svg-sprite-loader


SvgIcon文件内容:

<template>

  <svg :class="svgClass" aria-hidden="true">

    <use :xlink:href="iconName"/>

  </svg>

</template>

<script>

  export default {

    name: 'SvgIcon',

    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 scoped>

  .svg-icon {

    width: 1em;

    height: 1em;

    vertical-align: -0.15em;

    fill: currentColor;

    overflow: hidden;

  }

</style>


index.js文件内容:

import Vue from 'vue'

import SvgIcon from '../components/SvgIcon' // svg组件

// 注册到全局

Vue.component('svg-icon', SvgIcon)

const requireAll = requireContext => requireContext.keys().map(requireContext)

const req = require.context('./svg', false, /\.svg$/)

requireAll(req)


在webpack.base.conf.js中配置svg依赖

在module里找到 test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,位置进行修改

module: {

    rules: [

{

        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,

        loader: 'url-loader',

        exclude: [resolve('src/icons')], // 去除你存放svg的那个文件夹,改用svg-loader处理

        options: {

          limit: 10000,

          name: utils.assetsPath('img/[name].[hash:7].[ext]')

        }

      },

      {

        test: /\.svg$/,

        loader: 'svg-sprite-loader',

        options: {

          symbolId: 'icon-[name]'

        },

        include: [resolve('src/icons')] // 把上面去掉的文件夹include进来

      },


最后在main.js里面引入icons文件夹下的index.js

import '@/icons/index'


就可以在vue文件下通过

<svg-icon  icon-class="下载在svg文件夹下对应文件的名字(不含.svg后缀)"></svg-icon>

相关文章

  • 插件工具 | 在vue中引入svg图标

    前言 1、基于 vue-cli32、使用插件 svg-sprite-loader 在 src/icons/svg文...

  • 项目使用svg图标

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

  • vue中使用svg注意点

    网上介绍在vue中如何使用svg的教程已经很多了,我这不多做赘述。 场景 已经根据网上的教程,将svg组件引入到页...

  • vue使用svg

    vue使用svg 做的一个可视化大屏项目中需要引入svg, 直接绑定svg元素的某些值,在ui给的svg中出现了s...

  • vue 使用 svg

    说明:很多关于类似的博客或者文档介绍的第三方库,由于有文件目录配置单一或者有webpack 兼容问题,所以都不考虑...

  • vue使用svg

    友情链接:https://www.jianshu.com/p/15f9e3a5e00d 终端安装 npm npm ...

  • vue使用svg

    在vue中使用svg svg的好处矢量性(无论图片放多大,都不会出现锯齿状模糊)利于seo 1. 安装依赖 2. ...

  • vue 使用svg

  • vue-cli3.x使用svg可复用图标

    vue-cli3.x使用svg可复用图标 在使用svg绘制时,对于可复用的图元,我们一般会使用标签 ,然后将每个图...

  • vue中 svg图标的使用

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

网友评论

      本文标题:vue中使用svg

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