vue動態(tài)綁定圖標的完整步驟
0 圖標和圖片的不同
圖標時字符,圖片時二進制流。即圖片加載會比圖標慢,且加載圖標最好不要用img標簽,我們可以把圖標當成組件用import的方法引入進來,然后當成標簽引入。
1 安裝svg
1.使用管理員身份運行cmd窗口,切換到項目目錄下執(zhí)行。
npm add svg
2 從圖標庫下載圖標
1.阿里圖標庫
https://www.iconfont.cn/
2.下載svg

3.在compone目錄下建立一個icons,在icons下建立一個svg目錄,專門用來放圖標。

3 查看插件的使用方法
- vue所有的插件都在node_modules中
- 根據(jù)下載時的插件名來找到插件e-cli-plugin-svg的README

4 展示圖標
1 定義動態(tài)組件MyIcon.vue
1.其中myicon是從父組件傳過來的屬性
2.computed是用來根據(jù)myicon.name(圖標的名字)來動態(tài)生成圖標地址的。原因是在export default{}外引入組件時,我們接收到的props屬性是傳遞不到export default{}外面的,所以采用computed來協(xié)助生成icon組件。
3.:style是動態(tài)綁定樣式,此處綁定了寬,高。并在props中設置了默認值,如果父組件不傳遞寬高信息的話,就是使用默認值。
4.:fill是綁定填充屬性樣式的,也在props中設置了默認值。
<template>
<div>
<component
:is="icon"
:style="{width : myicon.width , hight : myicon.hight}"
:fill="myicon.fill"
></component>
</div>
</template>
<script>
export default{
props:{
myicon:{
name:{
type:String
},
width:{
type:String,
default:'40px'
},
hight:{
type:String,
default:'40px'
},
fill:{
type:String,
default:'#000000'
}
}
},
computed:{
icon(){
return () => import('@/components/icons/svg/'+ this.myicon.name +'.svg?inline')
}
}
}
</script>
<style>
</style>
2 在main,js中全局引入并定義組件MyIcon.vue
import mysvg from '@/components/MyIcon.vue'
Vue.component('my-icon',mysvg)
3 調用my-icon作為父組件
1.把要傳遞的屬性定義在myicon:{}中,其中name是必填項,它是圖標的名字,不帶后綴。
<template>
<my-icon
:name = "scope.row.icon"
:width = "50px"
:hight = "50px"
:fill = "#ff00ff">
</my-icon>
</template>
<script>
export default {
data() {
return {
myicon:{
name: "position",
width: "60px",
hight: "60px",
fill : "#ff00ff"
},
}
},
}
</script>
<style scoped lang="less">
</style>
總結
到此這篇關于vue動態(tài)綁定圖標的文章就介紹到這了,更多相關vue動態(tài)綁定圖標內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Vue下滾動到頁面底部無限加載數(shù)據(jù)的示例代碼
本篇文章主要介紹了Vue下滾動到頁面底部無限加載數(shù)據(jù)的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
Vue?echarts@4.x中國地圖及AMap相關API使用詳解
這篇文章主要為大家介紹了Vue使用echarts@4.x中國地圖及AMap相關API使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
詳解vue axios用post提交的數(shù)據(jù)格式
這篇文章主要介紹了詳解vue axios用post提交的數(shù)據(jù)格式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-08-08

