<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      18、vue-cli3引入封裝svg圖標

      svg圖標放大不失真,png會出現失真現象。

      一、方法一

      1、在對應vue項目里添加插件

      vue add svg-sprite

      輸入 Y

      2、再執行

      npm install svgo svgo-loader --save-dev

      然后你就會看到 自動新增 的根目錄文件vue.config.js和src/components/SvgIcon.vue,如圖:

      vue.config.js

      vue.config.js

      3、在main.js里注冊SvgIcon組件

      //引入svg組件
      import SvgIcon from '@/components/SvgIcon.vue'    
      
      //全局注冊icon-svg
      Vue.component('SvgIcon', SvgIcon)
      

      4、再在assets下創建icons文件夾,將所有的svg圖標放進去,name就是svg的名字,例如

      <svg-icon name="test"></svg-icon>
      

      如果項目不能成功顯示SVG,可以嘗試重新啟動項目。

      二、方法二

      方法二需要自己配置,有些麻煩

      1、在 src/components/ 下創建 SvgIcon 組件

      SvgIcon

      <template>
        <svg :class="svgClass" aria-hidden="true" v-on="$listeners">
          <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>
      
      

      2、在 src/ 下創建一個 icons 目錄,目錄結構如下:

      SvgIcon

      svg 目錄主要用于存放 svg 文件,來看一下 index.js 的內容,功能就是把組件注冊到全局,方便使用:

      import Vue from 'vue'
      import SvgIcon from '@/components/SvgIcon'// svg組件
      
      // register globally 注冊到全局
      Vue.component('svg-icon', SvgIcon)
      
      const req = require.context('./svg', false, /\.svg$/)
      const requireAll = requireContext => requireContext.keys().map(requireContext)
      requireAll(req)
      

      當然,如果你有自己的想法或需求,可以單獨引入,無需非要注冊到全局。

      3、 在 main.js 中引入

      import './icons' // icon
      

      4 、修改默認的 loader

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

      大家可以去vue-cli3官網去查看具體教程,這里我只說需要修改的 loader 以及具體的代碼實現。

      首先需要注意的是,通過 vue-cli3 構建的項目可以初始化進行很多選擇,我構建的目錄更多的是以 *.config.js 的形式存在的。

      在根目錄下創建一個名為 vue.config.js 文件,接下來的操作都和它有關,先來看一下它完整的代碼:

      module.exports = {
          chainWebpack: config => {
          // 一個規則里的 基礎Loader
          // svg是個基礎loader
          const svgRule = config.module.rule('svg')
      
          // 清除已有的所有 loader。
          // 如果你不這樣做,接下來的 loader 會附加在該規則現有的 loader 之后。
          svgRule.uses.clear()
      
          // 添加要替換的 loader
          svgRule
            .use('svg-sprite-loader')
            .loader('svg-sprite-loader')
            .options({
              symbolId: 'icon-[name]'
            })
        }
      }
      

      SvgIcon

      使用

      SvgIcon

      abc是文件名,在icons/svg中存放svg文件

      <svg-icon icon-class="abc" />
      
      如果項目不能成功顯示SVG,可以嘗試重新啟動項目。
      posted @ 2019-10-14 11:02  飛刀還問情  閱讀(3231)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 中文字幕制服国产精品| 国产丰满乱子伦无码专区| 精品一精品国产一级毛片| 亚洲人成网线在线播放VA| 欧美成人精品手机在线| 亚洲国产片一区二区三区| 国产精品中文字幕一二三| 欧美三级不卡在线观线看高清| 91精品91久久久久久| 国产一区二区在线观看粉嫩| 午夜福利看片在线观看| 欧美一本大道香蕉综合视频 | 国产精品成人久久电影| 久久精品国产福利一区二区| 涞源县| 国产69精品久久久久人妻| 欧美成人午夜在线观看视频| 大香伊蕉在人线国产av| 日韩人妻久久精品一区二区 | 亚洲综合一区二区国产精品| 精品一区二区中文字幕| 91精品国产老熟女在线| 天堂av在线一区二区| 国产明星精品无码AV换脸| 长腿校花无力呻吟娇喘| 米泉市| 乱老年女人伦免费视频| 精品国产高清中文字幕| 国产成人午夜福利在线播放| 久草热在线视频免费播放| 亚洲第一无码专区天堂| 国产a在视频线精品视频下载| 国产一区二区三区尤物视频 | 亚洲中文字幕国产综合| 精品黄色av一区二区三区| 亚洲AV国产福利精品在现观看| 国产亚洲视频在线播放香蕉| 天干天干夜天干天天爽| 色一乱一伦一图一区二区精品 | 国产精品蜜臀av在线一区| 国产精品污双胞胎在线观看|