最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue中引入svg圖標(biāo)的兩種方式

 更新時(shí)間:2021年01月14日 10:16:07   作者:十里不故夢  
這篇文章主要給大家介紹了關(guān)于Vue中引入svg圖標(biāo)的兩種方式,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

Vue中引入svg圖標(biāo)的方式

Vue中引入svg圖標(biāo)的方式一

安裝

yarn add svg-sprite-loader --dev

svg組件

index.vue

<!-- svg組件 -->
<template>
 <svg class="svg-icon" :class="svgClass" aria-hidden="true">
  <use :xlink:href="iconName" />
 </svg>
</template>

<script>
export default {
 name: 'SvgIcon',
 props: {
  // svg 的名稱
  svgName: {
   type: String,
   required: true
  }
 },
 computed: {
  iconName () {
   return `#icon-${this.svgName}`
  },
  svgClass () {
   if (this.svgName) {
    return 'svg-icon' + this.svgName
   } else {
    return 'svg-icon'
   }
  }
 }
}
</script>

<style lang="less" scoped>
.svg-icon {
 width: 100px;
 height: 100px;
 vertical-align: -0.15em;
 fill: currentColor;
 overflow: hidden;
}
</style>

注冊到全局

index.js

import Vue from 'vue'
import SvgIcon from '@/components/SvgIcon'

// 注冊到全局
Vue.component('svg-icon', SvgIcon)

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

vue.config.js

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

頁面中使用

<!-- svg-name為svg名 -->
<svg-icon svg-name="ic_home_news" />

Vue中引入svg圖標(biāo)的方式二

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

vue.config.js中添加如下代碼

const path = require('path');
function resolve(dir) {
 // __dirname項(xiàng)目根目錄的絕對路徑
 return path.join(__dirname, dir);
}
module.exports = {
 chainWebpack: config => {
 const svgRule = config.module.rule('svg');
 // 清除已有的所有l(wèi)oader
 // 如果你不這樣做,接下來的loader會附加在該規(guī)則現(xiàn)有的loader之后
 svgRule.uses.clear();
 svgRule
  .test(/\.svg$/)
  .include.add(path.resolve(__dirname, './src/icons/svg'))
  .end()
  .use('svg-sprite-loader')
  .loader('svg-sprite-loader')
  .options({
  symbolId: 'icon-[name]'
  });
 const fileRule = config.module.rule('file');
 fileRule.uses.clear();
 fileRule
  .test(/\.svg$/)
  .exclude.add(path.resolve(__dirname, './src/icons/svg'))
  .end()
  .use('file-loader')
  .loader('file-loader');
 },
}

建立如下的文件目錄

SvgIcon.vue代碼

<template>
 <svg :class="svgClass" xmlns="http://www.w3.org/2000/svg">
 <use :xlink:href="iconName" xmlns:xlink="http://www.w3.org/1999/xlink" />
 </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>

svg文件夾下放svg圖標(biāo)

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

最后在main.js中引入

import './icons'; 

在頁面中使用svg

icon-class是svg圖標(biāo)名 class-name是你要自定義的class類名

<svg-icon icon-class="features_ic_risk@1x" class-name="icon"></svg-icon>

總結(jié)

到此這篇關(guān)于Vue中引入svg圖標(biāo)的兩種方式的文章就介紹到這了,更多相關(guān)Vue引入svg圖標(biāo)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue.js打包之后可能會遇到的坑!

    vue.js打包之后可能會遇到的坑!

    這篇文章主要給大家介紹了關(guān)于vue.js打包之后可能會遇到的一些坑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • 解決VantUI popup 彈窗不彈出或無蒙層的問題

    解決VantUI popup 彈窗不彈出或無蒙層的問題

    這篇文章主要介紹了解決VantUI popup 彈窗不彈出或無蒙層的問題。具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 使用vue初用antd 用v-model來雙向綁定Form表單問題

    使用vue初用antd 用v-model來雙向綁定Form表單問題

    這篇文章主要介紹了使用vue初用antd 用v-model來雙向綁定Form表單問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vuex 實(shí)現(xiàn)getter值賦值給vue組件里的data示例

    vuex 實(shí)現(xiàn)getter值賦值給vue組件里的data示例

    今天小編就為大家分享一篇vuex 實(shí)現(xiàn)getter值賦值給vue組件里的data示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Vue利用自定義指令實(shí)現(xiàn)按鈕權(quán)限控制

    Vue利用自定義指令實(shí)現(xiàn)按鈕權(quán)限控制

    這篇文章主要為大家詳細(xì)介紹了Vue如何利用自定義指令實(shí)現(xiàn)按鈕權(quán)限控制效果,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以參考下
    2023-05-05
  • Vue的事件響應(yīng)式進(jìn)度條組件實(shí)例詳解

    Vue的事件響應(yīng)式進(jìn)度條組件實(shí)例詳解

    這篇文章主要介紹了Vue的事件響應(yīng)式進(jìn)度條組件的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • vue如何使用formData傳遞文件類型的數(shù)據(jù)

    vue如何使用formData傳遞文件類型的數(shù)據(jù)

    這篇文章主要介紹了vue如何使用formData傳遞文件類型的數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 誤引用vuex-persistedstate導(dǎo)致用戶信息無法清除問題及解決

    誤引用vuex-persistedstate導(dǎo)致用戶信息無法清除問題及解決

    這篇文章主要介紹了誤引用vuex-persistedstate導(dǎo)致用戶信息無法清除問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue如何監(jiān)聽頁面緩存事件

    vue如何監(jiān)聽頁面緩存事件

    這篇文章主要介紹了vue如何監(jiān)聽頁面緩存事件,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • VUE 實(shí)現(xiàn)一個(gè)簡易老虎機(jī)的項(xiàng)目實(shí)踐

    VUE 實(shí)現(xiàn)一個(gè)簡易老虎機(jī)的項(xiàng)目實(shí)踐

    老虎機(jī)在很多地方都可以見到,可以設(shè)置中獎(jiǎng)位置,以及中獎(jiǎng)回調(diào),本文主要介紹了VUE 實(shí)現(xiàn)一個(gè)簡易老虎機(jī)的項(xiàng)目實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04

最新評論

江永县| 塔河县| 华坪县| 巫溪县| 弥勒县| 马关县| 连城县| 台东县| 德令哈市| 门头沟区| 蒲江县| 镇坪县| 新巴尔虎左旗| 雷州市| 库伦旗| 垫江县| 新疆| 融水| 钦州市| 河西区| 都安| 富民县| 和平县| 张家口市| 庆安县| 龙井市| 宜春市| 措勤县| 临桂县| 富民县| 安丘市| 丹凤县| 鸡东县| 西华县| 抚松县| 利津县| 丰宁| 盖州市| 蒙城县| 留坝县| 哈密市|