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

vue中手動封裝iconfont組件解析(三種引用方式的封裝和使用)

 更新時間:2022年09月08日 11:00:05   作者:艾歡歡  
這篇文章主要介紹了vue中手動封裝iconfont組件(三種引用方式的封裝和使用),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

在線使用 有時候會因網(wǎng)絡(luò)問題影響用戶體驗;直接放在 本地使用 ,如果過多使用也會顯得繁瑣,所以就可以將其封裝成一個組件,也方便維護(hù)。?

封裝基于阿里巴巴圖標(biāo)庫的項目圖標(biāo)。

準(zhǔn)備

將項目內(nèi)的圖標(biāo)下載至本地

img

在了路徑 src/assets 下新建文件夾 iconfont ,用來存放字體圖標(biāo)的本地文件

解壓下載到本地的字體圖標(biāo)文件,放到 iconfont 文件夾下

如過項目中沒有下載 css-loader 依賴包,就進(jìn)行下載,否則會報錯

npm install css-loader -D

封裝

unicode引用封裝

<template>
  <div>
    <span class="iconfont" v-html="name"></span>
    <slot></slot>
  </div>
</template>
  
 
<script>
export default {
  name: 'iconUnicode',
  props: {
    name: {
      type: String,
      required: true
    }
  }
}
</script>
<style scoped>
@font-face {
  /* Unicode  */
  font-family: "iconfont";
  src: url("../assets/iconfont/iconfont.eot");
  src: url("../assets/iconfont/iconfont.eot?#iefix") format("embedded-opentype"),
    url("../assets/iconfont/iconfont.woff2") format("woff2"),
    url("../assets/iconfont/iconfont.woff") format("woff"),
    url("../assets/iconfont/iconfont.ttf") format("truetype"),
    url("../assets/iconfont/iconfont.svg#iconfont") format("svg");
}
.iconfont {
  font-family: "iconfont" !important;
  font-size: 2em;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
</style>

font-class引用封裝

<template>
? <div>
? ? <span class="iconfont" :class="iconTag"></span>
? ? <slot></slot>
? </div>
</template>

   

<script>
import "../assets/iconfont/iconfont.css";
export default {
? name: "iconFontClass",
? props: {
? ? name: {
? ? ? type: String,
? ? ? required: true
? ? }
? },
? computed: {
? ? iconTag() {
? ? ? return `icon-${this.name}`;
? ? }
? }
};
</script>
<style scoped>
.iconfont {
? font-family: "iconfont" !important;
? font-size: 2em;
? font-style: normal;
? -webkit-font-smoothing: antialiased;
? -moz-osx-font-smoothing: grayscale;
}
</style>

symbol引用封裝

<template>
? <div>
? ? <svg class="icon" aria-hidden="true">
? ? ? <use :xlink:href="iconTag" rel="external nofollow" ></use>
? ? </svg>
? ? <slot></slot>
? </div>
</template>

   

<script>
import "../assets/iconfont/iconfont.js";
export default {
? name: "iconSymbol",
? props: {
? ? name: {
? ? ? type: String,
? ? ? required: true
? ? }
? },
? computed: {
? ? iconTag() {
? ? ? return `#icon-${this.name}`;
? ? }
? }
};
</script>
<style scoped>
.icon {
? width: 2em;
? height: 2em;
? vertical-align: -0.15em;
? fill: currentColor;
? overflow: hidden;
}
</style>

引入

全局引入

// main.js
// 引入并注冊全局組件
import iconUnicode from './ui/iconUnicode'
Vue.component('iUnicode', iconUnicode)

局部引入

// 局部引入并使用
import iSymbol from "../ui/iconSymbol"
import iFont from "../ui/iconFontClass"
export default {
   //注冊
  components: {
    iSymbol,
    iFont
  }
};

使用

<template>
  <div class="box">
    <i-symbol name="fanhuidingbu">Symbol</i-symbol>
    <i-font name="fanhuidingbu">Font class</i-font>
    <i-unicode name="&#xe633;" style="font-size:30px;color:#333">Unicode</i-unicode>
  </div>
</template>

效果圖:

最后

也可以通過在線鏈接進(jìn)行封裝,但不管是在線使用還是本地使用,每次在項目中添加新圖標(biāo)之后都要更新一下 本地iconfont文件 或者 在線鏈接 。

demo 已上傳 GitHub

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • Vue程序調(diào)試和排錯技巧分享

    Vue程序調(diào)試和排錯技巧分享

    因為程序的調(diào)試非常重要,程序猿可以利用好的調(diào)試方法去查找定位自己的問題所在之處,從而,達(dá)到糾正自己程序錯誤的地方,健壯自己的程序,讓問題變得越來越少,程序變得越來越健康,所以本文給大家介紹了Vue程序調(diào)試和排錯技巧,需要的朋友可以參考下
    2024-12-12
  • Vue3?setup的注意點及watch監(jiān)視屬性的六種情況分析

    Vue3?setup的注意點及watch監(jiān)視屬性的六種情況分析

    這篇文章主要介紹了Vue3?setup的注意點及watch監(jiān)視屬性的六種情況,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Vue路由權(quán)限控制解析

    Vue路由權(quán)限控制解析

    這篇文章主要介紹了Vue路由權(quán)限控制的相關(guān)資料,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-11-11
  • Vue前端開發(fā)規(guī)范整理(推薦)

    Vue前端開發(fā)規(guī)范整理(推薦)

    本文是基于vue官方風(fēng)格指南整理的關(guān)于Vue前端開發(fā)規(guī)范(推薦),非常不錯,具有參考借鑒借鑒價值,需要的朋友可以參考下
    2018-04-04
  • Vue中關(guān)閉彈窗組件時銷毀并隱藏操作

    Vue中關(guān)閉彈窗組件時銷毀并隱藏操作

    這篇文章主要介紹了Vue中關(guān)閉彈窗組件時銷毀并隱藏操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Vue實現(xiàn)指令式動態(tài)追加小球動畫組件的步驟

    Vue實現(xiàn)指令式動態(tài)追加小球動畫組件的步驟

    這篇文章主要介紹了Vue實現(xiàn)指令式動態(tài)追加小球動畫組件的步驟,幫助大家更好的理解和實用vue,感興趣的朋友可以了解下
    2020-12-12
  • Vue中ElementUI結(jié)合transform使用時彈框定位不準(zhǔn)確問題解析

    Vue中ElementUI結(jié)合transform使用時彈框定位不準(zhǔn)確問題解析

    在近期開發(fā)中,需要將1920*1080放到更大像素大屏上演示,所以需要使用到transform來對頁面進(jìn)行縮放,但是此時發(fā)現(xiàn)彈框定位出錯問題,無法準(zhǔn)備定位到實際位置,本文給大家分享Vue中ElementUI結(jié)合transform使用時彈框定位不準(zhǔn)確解決方法,感興趣的朋友一起看看吧
    2024-01-01
  • Vue開發(fā)實現(xiàn)滑動驗證組件

    Vue開發(fā)實現(xiàn)滑動驗證組件

    這篇文章主要為大家詳細(xì)介紹了如何利用Vue開發(fā)實現(xiàn)簡單的滑動驗證組件,并且適配移動和PC,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-07-07
  • Vue中的組件及路由使用實例代碼詳解

    Vue中的組件及路由使用實例代碼詳解

    組件系統(tǒng)是 Vue 的一個重要概念,因為它是一種抽象,允許我們使用小型、獨立和通??蓮?fù)用的組件構(gòu)建大型應(yīng)用。這篇文章主要介紹了Vue中的組件及路由使用 ,需要的朋友可以參考下
    2019-05-05
  • vue 使用微信jssdk,調(diào)用微信相冊上傳圖片功能

    vue 使用微信jssdk,調(diào)用微信相冊上傳圖片功能

    這篇文章主要介紹了vue 使用微信jssdk,調(diào)用微信相冊上傳圖片功能,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11

最新評論

钦州市| 镇雄县| 惠州市| 尉犁县| 华安县| 香河县| 汕头市| 克什克腾旗| 巴彦淖尔市| 鹿邑县| 隆尧县| 乌拉特中旗| 义乌市| 泰兴市| 宁陵县| 电白县| 宁明县| 贵阳市| 合作市| 镇雄县| 光泽县| 长汀县| 安平县| 门源| 元氏县| 外汇| 镇赉县| 隆化县| 银川市| 呈贡县| 新宁县| 涟源市| 津南区| 永州市| 任丘市| 长兴县| 桃园县| 大悟县| 皋兰县| 将乐县| 若尔盖县|