使用vue組件加載SVG圖片步驟

      使用vue加載SVG圖片,有兩種方法,一種是雪花loader,一種是vue-svg-loader(官網推薦)。vue

     在本身的項目中,本次使用vue-svg-loader加載svg圖片,而且對圖片進行屬性修改。操做步驟:webpack

    1:下載svg-vue-loader  ,並安裝git

          npm i -D vue-svg-loader  vue-template-compiler  github

         下載babel-loader,並安裝web

          npm install -D babel-loader @babel/core @babel/preset-env webpacknpm

   2:本人使用vuecli3腳手架,在vue.config.js配置以下瀏覽器

module.exports = {
  chainWebpack: (config) => {
    const svgRule = config.module.rule('svg');
 
    svgRule.uses.clear();
 
    svgRule
      .use('babel-loader')
      .loader('babel-loader')
      .end()
      .use('vue-svg-loader')
      .loader('vue-svg-loader');
  },
};
3. 在babel.config.js文件中修改成:
module.exports = {
  presets: [
    '@vue/app'
  ],
  sourceType:'unambiguous'
}

 

  4,這樣就能夠加載svg圖片了babel

<template>
  <nav>
    <a href="https://github.com/vuejs/vue">
      <VueLogo />
      Vue
    </a>
    <a href="https://github.com/svg/svgo">
      <SVGOLogo />
      SVGO
    </a>
    <a href="https://github.com/webpack/webpack">
      <WebpackLogo />
      webpack
    </a>
  </nav>
</template>
<script>
import VueLogo from './public/vue.svg';
import SVGOLogo from './public/svgo.svg';
import WebpackLogo from './public/webpack.svg';
 
export default {
  name: 'Example',
  components: {
    VueLogo,
    SVGOLogo,
    WebpackLogo,
  },
};
</script>

注意,若是在配置vue.config.js中的vue-svg-loader時,不去配置babel,只兼容谷歌和火狐,而IE,Edge不兼容,會報錯,緣由是IE,Edge使用ES5語法,ES6語法瀏覽器不認識,因此必須使用Babel進行轉碼,將ES6語法翻譯成ES5,這樣就能夠兼容了。app

相關文章
相關標籤/搜索