element-plus岁诉,如何動態(tài)設置圖標锚沸?

element-plus 里面的 icon,以前是字符串形式的涕癣,非常容易做成動態(tài)的效果哗蜈,但是新版本改成了組件的形式,不支持字符串的形式了坠韩。
組件了如何動態(tài)呢距潘?

其實也很簡單,我們把需要的 icon組件 注冊為全局的字典只搁,key:組件 的形式音比,然后就可以把字符串轉換為圖標組件了。

全局注冊

首先建立一個js文件氢惋,引入圖標硅确,做成字典的形式,再用 Vue 的插件功能注冊為全局變量明肮。

import { reactive } from 'vue'
// 引入全部圖標
// import * as Icons from "@element-plus/icons"

// 按需引入圖標
import {
  CloseBold,
  Close,
  Plus,
  Star,
  UserFilled,
  Loading,
  Connection,
  Edit,
  FolderOpened
} from '@element-plus/icons'

const dictIcon = reactive({
  'CloseBold': CloseBold,
  'Close': Close,
  'Plus': Plus,
  'Star': Star,
  'UserFilled': UserFilled,
  'Loading': Loading,
  'Connection': Connection,
  'Edit': Edit,
  'FolderOpened': FolderOpened
})

const installIcon = (app) => {
  // 便于模板獲取
  app.config.globalProperties.$icon = dictIcon
  // 使用全部圖標
  // app.config.globalProperties.$icon = Icons
}

export default installIcon

使用全部圖標

這里有兩種使用方式,一種是簡單粗暴的全部圖標都注冊了缭付,看了一下node_modules里面的文件柿估,一共二、三百KB陷猫,如果不太在意體積的話秫舌,可以全都弄進來的妖。

按需索取

如果使用的圖標不是很多,那么可以只引入需要的圖標足陨,這樣體積就小很多了嫂粟。

在 main.js 里面掛載。

// 設置icon
import installIcon from './icon/index.js'

app.use(nfElementPlus) // 全局注冊
  .use(router) // 路由
  .use(installIcon) // 注冊全局圖標
  .use(ElementPlus, { locale: zhCn, size: 'small' }) // UI庫
  .mount('#app')

在模板里面使用

<component
  :is="$icon[iconName]"
  style="width: 1.5em; height: 1.5em; margin-right: 8px;color:#123456"
>
</component>

在模板里面使用動態(tài)組件墨缘,根據圖標名稱加載圖標星虹,使用style設置大小和顏色,這樣就可以了镊讼。

在組件屬性里面使用

幾個例子:
el-input 的 prefix-icon 屬性可以設置圖標宽涌,屬性類型是字符串或者組件,試了一下字符串蝶棋,沒有效果卸亮,大概需要在使用 el-input 的組件里面注冊對應的圖標,這樣就不方便實現動態(tài)圖標了玩裙,或者全局注冊圖標兼贸。

既然我們做了全局注冊的字典,那么屬性也可以用一用吃溅。

<el-input
    v-model="value"
    :prefix-icon="($icon)?$icon['Edit']:'' "
    :suffix-icon="($icon)?$icon[iconName]:'' "
>
</el-input>

這樣就可以統一使用動態(tài)圖標了溶诞。

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市罕偎,隨后出現的幾起案子很澄,更是在濱河造成了極大的恐慌,老刑警劉巖颜及,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甩苛,死亡現場離奇詭異,居然都是意外死亡俏站,警方通過查閱死者的電腦和手機讯蒲,發(fā)現死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肄扎,“玉大人墨林,你說我怎么就攤上這事》胳簦” “怎么了旭等?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長衡载。 經常有香客問我搔耕,道長,這世上最難降的妖魔是什么痰娱? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任弃榨,我火速辦了婚禮菩收,結果婚禮上,老公的妹妹穿的比我還像新娘鲸睛。我一直安慰自己娜饵,他們只是感情好,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布官辈。 她就那樣靜靜地躺著箱舞,像睡著了一般。 火紅的嫁衣襯著肌膚如雪钧萍。 梳的紋絲不亂的頭發(fā)上褐缠,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音风瘦,去河邊找鬼队魏。 笑死,一個胖子當著我的面吹牛万搔,可吹牛的內容都是我干的胡桨。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼瞬雹,長吁一口氣:“原來是場噩夢啊……” “哼昧谊!你這毒婦竟也來了?” 一聲冷哼從身側響起酗捌,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤呢诬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后胖缤,有當地人在樹林里發(fā)現了一具尸體尚镰,經...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年哪廓,在試婚紗的時候發(fā)現自己被綠了狗唉。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡涡真,死狀恐怖分俯,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情哆料,我是刑警寧澤缸剪,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站东亦,受9級特大地震影響杏节,放射性物質發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一拢锹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧萄喳,春花似錦卒稳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至染突,卻和暖如春捻爷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背份企。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工也榄, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人司志。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓甜紫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親骂远。 傳聞我的和親對象是個殘疾皇子囚霸,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內容