把svg当成组件使用

好处是可以随意更改 svg的填充色

  • 安装
npm i -D vue-svg-loader

or

yarn add -D vue-svg-loader
  • webpack配置
    vue-cli2.0配置
module.exports = {
  module: {
    rules: [
      {
        test: /\.svg$/,
        loader: 'vue-svg-loader',
      },
    ],
  },
};

vue-cli3.0配置

module.exports = {
  chainWebpack: (config) => {
    const svgRule = config.module.rule('svg');

    svgRule.uses.clear();

    svgRule
      .use('vue-svg-loader')
      .loader('vue-svg-loader');
  },
};
  • 使用
<template>
  <nav>
    <a>
      <WebpackLogo class="logo" />
      webpack
    </a>
  </nav>
</template>
<script>
import WebpackLogo from './public/webpack.svg';

export default {
  name: 'Example',
  components: {
    WebpackLogo
  },
};
</script>
<style scoped lang='scss'>

.logo {
  width: 28px;
  height: 28px;
  margin-right: 10px;
  fill: #336699;
  &:hover {
      fill: #ff3366;
  }
}
</style>

上述用法在2019/1/17再次使用的时候 报错
所以在补一种方法

npm install vue2-svg-icon --save-dev

在main.js里面配置

import Icon from 'vue2-svg-icon/Icon.vue'

vue.component('icon', Icon)

很重要的一点

一定要在assets里面新建一个svg文件夹,然后放入项目的svg图标


image.png

在组件里面引入,name对应的就是svg的名字

<template>
    <div>
        测试
        <icon name="excel" class="my-icon"></icon>
    </div>
</template>

<script>

    export default {
        name: "Tree",
      props: ['model'],
        data() {
            return {

            }
        }
    }
</script>

<style scoped lang="scss">
    .my-icon{
        width: 20px;
        height: 20px;
        fill: #00c585
    }
</style>
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1 Webpack 1.1 概念简介 1.1.1 WebPack是什么 1、一个打包工具 2、一个模块加载工具 3...
    Kevin_Junbaozi阅读 7,082评论 0赞 16
  • 相关概念 混合开发和前后端分离 混合开发(服务器端渲染) 前后端分离后端提供接口,前端开发界面效果(专注于用户的交...
    他爱在黑暗中漫游阅读 3,108评论 4赞 45
  • 33、JS中的本地存储 把一些信息存储在当前浏览器指定域下的某一个地方(存储到物理硬盘中)1、不能跨浏览器传输:在...
    萌妹撒阅读 2,291评论 0赞 2
  • 没有题目的作文 骑天大胜 焦点少年班坚持分享第39天 2017.9.5 我今天听了别人主持的班队会后,我认为其...
    她说梦里花会开阅读 213评论 0赞 0
  • 五一都过了,夏天还会远吗!!夏天的夜晚应该要做什么???要喝酒,聊天,吃烧烤!!! 每天新鲜的羊排肉穿成的大串让你...
    叫我孙悟空Y阅读 260评论 0赞 0

友情链接更多精彩内容