vue cli3使用svg-sprite-loader

iconfont symbol對比svg-sprite-loader

iconfont symbol在SVG使用上簡單,但是對于后期修改不方便晴裹。
這是一種全新的使用方式,應該說這才是未來的主流炼蹦,也是平臺目前推薦的用法逮壁。相關
目前symbol方式的iconfont:

  • 支持多色圖標了,不再受單色限制徐矩。
  • 通過一些技巧滞时,支持像字體那樣,通過font-size,color來調(diào)整樣式滤灯。
  • 兼容性較差坪稽,支持 ie9+,及現(xiàn)代瀏覽器。
  • 瀏覽器渲染svg的性能一般鳞骤,還不如png窒百。
    使用iconfont的symbol方法

具體操作步驟

  1. 首先在iconfont官網(wǎng)批量下載svg圖片,可以操作


    image.png

    image.png

    image.png
  1. 將下載好的SVG放在目錄src/icons/svg
  2. 安裝svg-sprite-loader
yarn add svg-sprite-loader --dev
  1. 配置vue.config.js,加入一段代碼
const path = require('path')
function resolve(dir) {
 return path.join(__dirname, '.', dir)
}

module.exports = {
 chainWebpack: config => {
        config.module
            .rule('svg')
            .exclude.add(resolve('src/icons'))
            .end()

        config.module
            .rule('icons')
            .test(/\.svg$/)
            .include.add(resolve('src/icons'))
            .end()
            .use('svg-sprite-loader')
            .loader('svg-sprite-loader')
            .options({
                symbolId: 'icon-[name]'
            })
    }
}

5.在compoents下新建SvgIcon組件index.vue


image.png

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

  1. 在src/icons下新建index.js


    image.png
import Vue from 'vue'
import SvgIcon from '@/components/SvgIcon'// svg component

// register globally
Vue.component('svg-icon', SvgIcon)

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

  1. 在main.ts下添加import '@/icons'


    image.png

OK,完成以上配置即可添加svg

<svg-icon icon-class="zhuye" />
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末豫尽,一起剝皮案震驚了整個濱河市篙梢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拂募,老刑警劉巖庭猩,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窟她,死亡現(xiàn)場離奇詭異,居然都是意外死亡蔼水,警方通過查閱死者的電腦和手機震糖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來趴腋,“玉大人吊说,你說我怎么就攤上這事∮啪妫” “怎么了颁井?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蠢护。 經(jīng)常有香客問我雅宾,道長,這世上最難降的妖魔是什么葵硕? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任眉抬,我火速辦了婚禮,結(jié)果婚禮上懈凹,老公的妹妹穿的比我還像新娘蜀变。我一直安慰自己,他們只是感情好介评,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布库北。 她就那樣靜靜地躺著,像睡著了一般们陆。 火紅的嫁衣襯著肌膚如雪寒瓦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天棒掠,我揣著相機與錄音孵构,去河邊找鬼。 笑死烟很,一個胖子當著我的面吹牛颈墅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雾袱,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼恤筛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了芹橡?” 一聲冷哼從身側(cè)響起毒坛,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后煎殷,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屯伞,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年豪直,在試婚紗的時候發(fā)現(xiàn)自己被綠了劣摇。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡弓乙,死狀恐怖末融,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情暇韧,我是刑警寧澤勾习,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站懈玻,受9級特大地震影響巧婶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜酪刀,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一粹舵、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧骂倘,春花似錦、人聲如沸巴席。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漾唉。三九已至荧库,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赵刑,已是汗流浹背分衫。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工瘪菌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晕翠,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓持痰,卻偏偏與公主長得像铐懊,于是被迫代替她去往敵國和親邀桑。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350