电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Vue Element前端應用開發(fā)之圖標的維護和使用

瀏覽:6日期:2022-09-29 17:35:11
目錄概述1、Vue-Awesome的使用介紹2、導入Element 圖標和Vue-Awesome圖標概述

Vue-Awesome 是基于 Vue.js 的 SVG 圖標組件,內(nèi)置圖標來自 Font Awesome。

本篇隨筆先來上一個圖標管理的界面效果,然后在逐一進行介紹Element內(nèi)置圖標和Vue-Awesome的圖標吧。

Element圖標管理界面如下:

Vue Element前端應用開發(fā)之圖標的維護和使用

基于Vue-Awesome的圖標管理如下所示。

Vue Element前端應用開發(fā)之圖標的維護和使用

其中查詢提供了名稱進行圖標查詢,以及限制一次性展示多少個,另外提供一個自定義顏色選項,從而可以改變圖標的展示顏色。

Vue Element前端應用開發(fā)之圖標的維護和使用

1、Vue-Awesome的使用介紹

Vue-Awesome 的 npm的安裝命令如下所示:

npm install vue-awesome

安裝方式如下所示

import Vue from ’vue’/* 在下面兩種方式中任選一種 */// 僅引入用到的圖標以減小打包體積import ’vue-awesome/icons/flag’// 或者在不關心打包體積時一次引入全部圖標import ’vue-awesome/icons’/* 任選一種注冊組件的方式 */import Icon from ’vue-awesome/components/Icon’// 全局注冊(在 `main .js` 文件中)Vue.component(’v-icon’, Icon)// 或局部注冊(在組件文件中)export default { components: { ’v-icon’: Icon }}

界面使用代碼如下所示,詳細Demo可以參考https://justineo.github.io/vue-awesome/demo/了解。

<!-- 基礎用法 --><v-icon name='beer'/><!-- 添加選項 --><v-icon name='sync' scale='2' spin/><v-icon name='comment' flip='horizontal'/><v-icon name='code-branch' label='Forked Repository'/><!-- 堆疊圖標 --><v-icon label='No Photos'> <v-icon name='camera'/> <v-icon name='ban' scale='2' /></v-icon>

Vue-Awesome圖標提供了一些prop的屬性設置,參考下面列表所示。

name: string

圖標名稱。如果本組件沒有用作圖標堆棧的容器,那么這個字段是必須的。所有合法的值都對應于圖標文件相對于icons目錄的路徑。請注意當你在 FontAwesome 官網(wǎng)查找到圖標名詞后,需要確認一下圖標集的名稱。比如,在500px這個圖標的詳情頁會有一個 URL 參數(shù)style=brands,故圖標名稱就是brands/500px。默認情況下,只能使用 FontAwesome 的免費圖標,另外由于solid樣式中的圖標最多,我們將其設為了默認圖標集,所以路徑前綴可以省略。當傳入null時,整個組件將不會渲染。

scale: number|string

用來調(diào)整圖標尺寸,默認值為1。

spin: boolean

用來指定圖標是否需要旋轉(zhuǎn)。默認值為false。(不能與pulse一同使用。)

pulse: boolean

用來指定圖標是否有脈沖旋轉(zhuǎn)的效果。默認值為false。(不能與spin一同使用。)

inverse: boolean

為true時圖標顏色將被設置為#fff。默認值為false。

flip: ’vertical’|’horizontal’|’both’

用來指定圖標是否需要翻轉(zhuǎn)。

label: string

當指定時會設置圖標的aria-label。

title: string

為圖標設置標題。

另外,我們也可以注冊自定義圖標,如下所示。

import Icon from ’vue-awesome/components/Icon’Icon.register({ baidu: { width: 23.868, height: 26, d: ’M3.613 13.701c2.827-.608 2.442-3.986 2.357-4.725-.138-1.139-1.477-3.128-3.296-2.971C.386 6.21.052 9.515.052 9.515c-.309 1.528.74 4.793 3.561 4.186zm3.002 5.875c-.083.238-.268.846-.107 1.375.315 1.187 1.346 1.24 1.346 1.24h1.48v-3.619H7.749c-.713.213-1.057.767-1.134 1.004zM8.86 8.035c1.562 0 2.823-1.797 2.823-4.019C11.683 1.796 10.421 0 8.86 0 7.301 0 6.036 1.796 6.036 4.016c0 2.222 1.265 4.019 2.824 4.019zm6.724.265c2.087.271 3.429-1.956 3.695-3.644.272-1.686-1.074-3.644-2.552-3.98-1.48-.339-3.329 2.032-3.497 3.578-.2 1.89.271 3.778 2.354 4.046zm5.114 9.923s-3.229-2.498-5.113-5.198c-2.555-3.981-6.185-2.361-7.399-.337-1.209 2.024-3.093 3.305-3.36 3.644-.271.334-3.9 2.293-3.095 5.871.806 3.576 3.635 3.508 3.635 3.508s2.085.205 4.504-.336c2.42-.537 4.503.134 4.503.134s5.652 1.893 7.199-1.751c1.545-3.645-.874-5.535-.874-5.535zm-9.671 5.423H7.352c-1.587-.316-2.219-1.4-2.299-1.584-.078-.188-.528-1.059-.29-2.539.686-2.219 2.642-2.379 2.642-2.379h1.956V14.74l1.666.025v8.881zm6.844-.025h-4.229c-1.639-.423-1.716-1.587-1.716-1.587v-4.677l1.716-.027v4.203c.104.447.661.529.661.529h1.742v-4.705h1.825v6.264zm5.986-12.486c0-.808-.671-3.239-3.159-3.239-2.492 0-2.825 2.295-2.825 3.917 0 1.548.131 3.71 3.227 3.641 3.096-.068 2.757-3.507 2.757-4.319z’ }})

如果你的 SVG 文件有多個路徑或多邊形,以及/或者你想預定義一些樣式,可以用如下方式進行注冊:

路徑方式:

import Icon from ’vue-awesome/components/Icon’Icon.register({ webpack: { width: 1200, height: 1200, paths: [ {style: ’fill:#8ED6FB’,d: ’M1035.6 879.3l-418.1 236.5V931.6L878 788.3l157.6 91zm28.6-25.9V358.8l-153 88.3V765l153 88.4zm-901.5 25.9l418.1 236.5V931.6L320.3 788.3l-157.6 91zm-28.6-25.9V358.8l153 88.3V765l-153 88.4zM152 326.8L580.8 84.2v178.1L306.1 413.4l-2.1 1.2-152-87.8zm894.3 0L617.5 84.2v178.1l274.7 151.1 2.1 1.2 152-87.8z’ }, {style: ’fill:#1C78C0’,d: ’M580.8 889.7l-257-141.3v-280l257 148.4v272.9zm36.7 0l257-141.3v-280l-257 148.4v272.9zm-18.3-283.6zM341.2 436l258-141.9 258 141.9-258 149-258-149z’ } ] }})

多邊形方式:

import Icon from ’vue-awesome/components/Icon’Icon.register({ vue: { width: 256, height: 221, polygons: [ {style: ’fill:#41B883’,points: ’0,0 128,220.8 256,0 204.8,0 128,132.48 50.56,0 0,0’ }, {style: ’fill:#35495E’,points: ’50.56,0 128,133.12 204.8,0 157.44,0 128,51.2 97.92,0 50.56,0’ } ] }})

對于自定義的這些圖標,我們可以把它們一起放在一個獨立的JS文件里面進行定義,然后全局統(tǒng)一加入即可。

Vue Element前端應用開發(fā)之圖標的維護和使用

Vue Element前端應用開發(fā)之圖標的維護和使用

使用上和其他的圖標沒有差異,只是名稱不同而已。

<div style='height:100px;padding:10px'> <span>vue-Awesome 自定義圖標:(在utils/awesome-icon-customed.js中引入)</span> <v-icon name='baidu' scale='2' : /> <v-icon name='vue' scale='2' /> <v-icon name='webpack' scale='2' spin /> <v-icon name='html5-c' scale='2' spin /> </div>2、導入Element 圖標和Vue-Awesome圖標

在我們進行頁面管理的時候,我們需要提取Element 圖標和Vue-Awesome圖標,以便能夠進行界面的展示處理。

Element圖標,我們只需要在一個JS文件里面,包含它的名稱進去一個列表里面即可,如下定義所示。

const elementIcons = [ ’platform-eleme’, ’eleme’, ’delete-solid’, ’delete’, ..........]export default elementIcons

在其中錄入對應Element的圖表名稱,移除el-icon-的前綴即可構(gòu)成所需列表的每項內(nèi)容。

而對于Vue-Awesome圖標,我們安裝對應的組件后,它的圖標資源肯定也一定下載下來了,我們找到對應的node_modules 目錄下的文件就可以看到了,如下截圖所示。

Vue Element前端應用開發(fā)之圖標的維護和使用

可以看到它的每個圖標對應一個js文件,而且不同樣式還有不同的目錄的,我們只需要自動加入對應的文件名稱即可。

定義一個js文件,如vue-awesome-icon.js,用來獲取對應Awesome圖標名稱,如下邏輯所示

// Vue-Awesome圖標自動加入const req = require.context(’vue-awesome/icons’, true, /.js$/)const requireAll = requireContext => requireContext.keys()const re = /./(.*).js/const vueAwesomeIcons = requireAll(req).filter((key) => { return key.indexOf(’index.js’) < 0}).map(i => { return i.match(re)[1]})export default vueAwesomeIcons

通過require.context 的操作以及僅需filter的數(shù)組過濾,我們就可以獲得對應的Awesome圖標名稱了。

在管理頁面里面,我們需要引入Element和Vue-Awesome的圖標管理文件,如下所示。

import elementIcons from ’./element-icons’ // 引入Element圖標import vueAwesomeIcons from ’./vue-awesome-icons’ // 引入vue-awesome圖標

然后構(gòu)造頁面的data數(shù)據(jù),如下所示,其中searchForm 是用來承載查詢條件的。

export default { name: ’Icons’, data() { return { // 查詢表單 searchForm: {label: ’’,pagesize: 50,color: ’#409EFF’ }, // 自定義svg圖標集合 svgIcons, // element圖標集合 elementIcons, // vueAwesome圖標集合 vueAwesomeIcons } },

然后增加幾個Computed函數(shù),用來處理數(shù)據(jù)的過濾查詢等操作。

computed: { iconStyle: function() { return { color: this.searchForm.color } }, elementIconsFiltered: function() { const that = this var list = that.elementIcons.filter(item => {return item.indexOf(that.searchForm.label) >= 0 }) if (that.searchForm.pagesize > 0) {return list.slice(0, that.searchForm.pagesize) } else {return list } }, vueAwesomeIconsFiltered: function() { const that = this var list = that.vueAwesomeIcons.filter(item => {return item.indexOf(that.searchForm.label) >= 0 }) if (that.searchForm.pagesize > 0) {return list.slice(0, that.searchForm.pagesize) } else {return list } } },

然后在method里面,對常規(guī)的圖標進行生成處理即可。

methods: { generateElementIconCode(symbol) { return `<i />` }, generateAwesomeIconCode(symbol) { return `<v-icon name='${symbol}' />` }, handleClipboard(text, event) { if (text) {clipboard(text, event) } } }

對于界面的展示,我們以Vue-awesome圖標展示為例介紹,如下所示。

<el-tab-pane label='Vue-Awesome 圖標'><div v-for='item of vueAwesomeIconsFiltered' :key='item' @click='handleClipboard(generateAwesomeIconCode(item),$event)'> <el-tooltip placement='top'> <div slot='content'>{{ generateAwesomeIconCode(item) }}</div> <div class='icon-item'> <v-icon :name='item' scale='2' : /> <span>{{ item }}</span> </div> </el-tooltip></div> </el-tab-pane>

這樣就可以實現(xiàn)對應圖標的動態(tài)過濾和展示了。

Vue Element前端應用開發(fā)之圖標的維護和使用

以上就是Vue Element前端應用開發(fā)之圖標的維護和使用的詳細內(nèi)容,更多關于Vue Element之圖標的維護和使用的資料請關注好吧啦網(wǎng)其它相關文章!

標簽: Vue
相關文章:
主站蜘蛛池模板: PCB设计,PCB抄板,电路板打样,PCBA加工-深圳市宏力捷电子有限公司 | 无线遥控更衣吊篮_IC卡更衣吊篮_电动更衣吊篮配件_煤矿更衣吊篮-力得电子 | 安徽合肥格力空调专卖店_格力中央空调_格力空调总经销公司代理-皖格制冷设备 | 不锈钢发酵罐_水果酒发酵罐_谷物发酵罐_山东誉诚不锈钢制品有限公司 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 广州市哲铭油墨涂料有限公司,水性漆生产研发基地 | 上海佳武自动化科技有限公司 | 合金耐磨锤头_破碎机锤头_郑州市德勤建材有限公司 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 压缩空气冷冻式干燥机_吸附式干燥机_吸干机_沪盛冷干机 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 微型驱动系统解决方案-深圳市兆威机电股份有限公司 | IPO咨询公司-IPO上市服务-细分市场研究-龙马咨询 | 水平筛厂家-三轴椭圆水平振动筛-泥沙震动筛设备_山东奥凯诺矿机 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | 大功率金属激光焊接机价格_不锈钢汽车配件|光纤自动激光焊接机设备-东莞市正信激光科技有限公司 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 软文发布-新闻发布推广平台-代写文章-网络广告营销-自助发稿公司媒介星 | 酸度计_PH计_特斯拉计-西安云仪 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn | 上海公司注册-代理记账-招投标审计-上海昆仑扇财税咨询有限公司 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 彼得逊采泥器-定深式采泥器-电动土壤采样器-土壤样品风干机-常州索奥仪器制造有限公司 | 密集架-手摇-智能-移动-价格_内蒙古档案密集架生产厂家 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 首页-浙江橙树网络技术有限公司 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 天津仓储物流-天津电商云仓-天津云仓一件代发-博程云仓官网 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 | 清水混凝土修复_混凝土色差修复剂_混凝土色差调整剂_清水混凝土色差修复_河南天工 | 广东西屋电气有限公司-广东西屋电气有限公司 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 丝印油墨_水性油墨_环保油墨油漆厂家_37国际化工 | 火锅加盟_四川成都火锅店加盟_中国火锅连锁品牌十强_朝天门火锅【官网】 | 土壤有机碳消解器-石油|表层油类分析采水器-青岛溯源环保设备有限公司 | 齿轮减速机电机一体机_齿轮减速箱加电机一体化-德国BOSERL蜗轮蜗杆减速机电机生产厂家 | 风化石头制砂机_方解石制砂机_瓷砖石子制砂机_华盛铭厂家 | 精密机械零件加工_CNC加工_精密加工_数控车床加工_精密机械加工_机械零部件加工厂 | 水冷式工业冷水机组_风冷式工业冷水机_水冷螺杆冷冻机组-深圳市普威机械设备有限公司 | 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 |