• VUE使用SVG


    1.安装依赖:

    npm install svg-sprite-loader --save-dev

    2.配置build文件夹中的webpack.base.conf.js,主要在两个地方添加代码,如下图所示

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

     3.在src/下新建文件夹icons

     svg文件夹:存放svg文件

    gz-svg-icon.vue:svg显示组件

    index.js入口:

    gz-svg-icon.vue代码:

    <template>
    <!-- <div>
      <h1>fdsf</h1>
    </div> -->
      <svg :class="svgClass" aria-hidden="true" v-on="$listeners">
        <use :xlink:href="iconName" />
      </svg>
    </template>
     
    <script>
    export default {
      name: "gz-svg-icon",
      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 {
      /*  1em;
      height: 1em; */
      vertical-align: -0.15em;
      fill: currentColor;
      overflow: hidden;
    }
    </style>

    index.js代码:

    import Vue from 'vue'
    import GzSvgIcon from './gz-svg-icon.vue' // svg组件
     
    // register globally
    Vue.component('gz-svg-icon', GzSvgIcon)
    //  eslint-disable-next-line
    const req = require.context('./svg', false, /.svg$/)
    const requireAll = requireContext => requireContext.keys().map(requireContext)
    requireAll(req)

     3.在main.js添加引用:

    import './icons'
     
    4.使用:

    ·1

    慎于行,敏于思!GGGGGG
  • 相关阅读:
    4.练习
    『Java面试题总结
    『Maven + Junit + Jacoco』单元测试覆盖率
    『Linux』命令
    『ElasticSearch』安装、健康值检查
    『类型转换』Object转Map、Map转Object
    『ElasticSearch』排序报错
    MD5加密解密网址总结
    汉字编码的理解
    ASCII码的理解
  • 原文地址:https://www.cnblogs.com/GarsonZhang/p/13141404.html
Copyright © 2020-2023  润新知