zoukankan      html  css  js  c++  java
  • svg-icon

    Vue例子:

    1.组件代码

    components/svgIcon/index.vue

    <template>
      <svg :width="size" :height="size" :style="{fill: iconColor}">
        <use :xlink:href="iconName"></use>
      </svg>
    </template>
    
    <script>
    export default {
      name: 'icon-svg',
      props: {
        iconClass: {
          type: String,
          required: true
        },
        size: { type: [Number, String], default: 32 },
        iconColor: { type: String, default: 'currentColor' }
      },
      computed: {
        iconName() {
          return `#icon-${this.iconClass}`
        }
      }
    }
    </script>    

    2.批量引入svg图片

    components/svgIcon/index.js

    // requires and returns all modules that match
    const requireAll = requireContext => requireContext.keys().map(requireContext)
    const req = require.context('@/assets/icons', false, /.svg$/)
    // import all svg
    requireAll(req)

    main.js

    import '@/components/svgIcon/index.js'

    3.使用svg-sprite

    如果不知道 svg-sprite 是什么,可以参考大神张鑫旭的文章:未来必热:SVG Sprite技术介绍

    • 页面代码清爽
    • 可使用 ID 随处重复调用
    • 每个 SVG 图标都可以更改大小颜色

    安装:

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

    使用:vue.config.js

    chainWebpack: config => {
        config.module.rules.delete("svg"); //重点:删除默认配置中处理svg,
        //const svgRule = config.module.rule('svg')
        //svgRule.uses.clear()
        config.module
          .rule('svg-sprite-loader')
          .test(/.svg$/)
          .include
          .add(resolve('src/icons')) //处理svg目录
          .end()
          .use('svg-sprite-loader')
          .loader('svg-sprite-loader')
          .options({
            symbolId: 'icon-[name]'
          })
      }

    记录进步。

    https://juejin.cn/post/6844903695478439949

    https://juejin.cn/post/6844903517564436493

  • 相关阅读:
    20191117-STD::讲解及求平均数例题
    计算机网络-ip分类
    游标cursor
    ajax
    django ORM
    urls
    templates
    views
    models
    setting
  • 原文地址:https://www.cnblogs.com/sxdjy/p/15209925.html
Copyright © 2011-2022 走看看