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

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

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

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

封裝基于阿里巴巴圖標(biāo)庫(kù)的項(xiàng)目圖標(biāo)。

準(zhǔn)備

將項(xiàng)目?jī)?nèi)的圖標(biāo)下載至本地

img

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

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

如過(guò)項(xiàng)目中沒(méi)有下載 css-loader 依賴(lài)包,就進(jìn)行下載,否則會(huì)報(bào)錯(cuò)

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
// 引入并注冊(cè)全局組件
import iconUnicode from './ui/iconUnicode'
Vue.component('iUnicode', iconUnicode)

局部引入

// 局部引入并使用
import iSymbol from "../ui/iconSymbol"
import iFont from "../ui/iconFontClass"
export default {
   //注冊(cè)
  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>

效果圖:

最后

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

demo 已上傳 GitHub

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Vue開(kāi)發(fā)實(shí)現(xiàn)滑動(dòng)驗(yàn)證組件

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

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

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

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

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

最新評(píng)論

托克逊县| 福海县| 仙游县| 兴城市| 沙河市| 庄浪县| 轮台县| 永宁县| 通许县| 台北县| 余庆县| 莆田市| 鲁山县| 大丰市| 盐池县| 辽宁省| 吴江市| 合川市| 昌都县| 英吉沙县| 永丰县| 景宁| 平原县| 天等县| 郧西县| 广东省| 廊坊市| 漯河市| 威宁| 庆安县| 利川市| 泰宁县| 清远市| 武安市| 寿宁县| 广东省| 红河县| 镇巴县| 论坛| 新巴尔虎左旗| 定南县|