亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue如何動態(tài)生成andv圖標

 更新時間:2023年10月07日 17:05:41   作者:木槿-年華  
這篇文章主要介紹了vue如何動態(tài)生成andv圖標問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue動態(tài)生成andv圖標

在最近使用andv的時候,出現(xiàn)了一個問題,在不使用iconfont圖標的前提下使用andv自帶的圖標庫動態(tài)生成icon圖標。

在百度一下后,發(fā)現(xiàn)以下方法

1.新建一個createIcon.js文件

 import * as icons from '@ant-design/icons-vue';
 import { createVNode } from 'vue'
 export const CreateIcon = (props)=>{
     const {icon} = props;
     return createVNode(icons[icon]);
 }

2.使用

 <a-menu
      v-model:selectedKeys="state.selectedKeys"
      theme="dark"
      mode="inline"
    >
      <template v-for="item in menus" :key="item.path">
        <a-sub-menu
          v-if="item.children && item.children.length"
          key="item.name"
        >
          <template #icon>
            <CreateIcon :icon="item.icon"></CreateIcon>
          </template>
          <template #title>{{ item.title }}}</template>
          <a-menu-item v-for="itemChild in item.children" :key="itemChild.name">
            <span>{{ itemChild.title }}</span>
          </a-menu-item>
        </a-sub-menu>
        <a-menu-item v-else>
          <template #icon>
            <CreateIcon :icon="item.icon"></CreateIcon>
          </template>
          <span>{{ item.title }}</span>
        </a-menu-item>
      </template>
    </a-menu>
import {CreateIcon} from './CreateIcon.js';
import {Component} from 'vue';
interface routerConfig {
  path: string;
  name: string;
  title: string;
  icon?:string|Component,
  children?:routerConfig[],
}
const menus:routerConfig[] = [
  {
    path: "/home",
    name: "home",
    title: "首頁",
    icon: 'HomeOutlined',
    children: [],
  },
];

vue動態(tài)綁定圖標

圖標和圖片的不同

圖標時字符,圖片時二進制流。

即圖片加載會比圖標慢,且加載圖標最好不要用img標簽,我們可以把圖標當成組件用 import 的方法引入進來,然后當成標簽引入。

安裝 svg

1.使用管理員身份運行cmd窗口,切換到項目目錄下執(zhí)行。

npm add svg

從圖標庫下載圖標

1.阿里圖標庫

https://www.iconfont.cn/

2.下載svg

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

查看插件的使用方法

vue所有的插件都在 node_modules

中根據下載時的插件名來找到插件 e-cli-plugin-svg README

展示圖標

定義動態(tài)組件 MyIcon.vue

1.其中 myicon 是從父組件傳過來的屬性

2.computed是用來根據 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>

在main,js中全局引入并定義組件 MyIcon.vue

import mysvg from '@/components/MyIcon.vue'
Vue.component('my-icon',mysvg)

調用 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中的el-tooltip提示黑框遮擋問題

    vue中的el-tooltip提示黑框遮擋問題

    這篇文章主要介紹了vue中的el-tooltip提示黑框遮擋問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 詳解win7 cmd執(zhí)行vue不是內部命令的解決方法

    詳解win7 cmd執(zhí)行vue不是內部命令的解決方法

    這篇文章主要介紹了詳解win7 cmd執(zhí)行vue不是內部命令的解決方法的相關資料,這里提供了解決問題的詳細步驟,具有一定的參考價值,需要的朋友可以參考下
    2017-07-07
  • vue-pdf插件實現(xiàn)pdf文檔預覽方式(自動分頁預覽)

    vue-pdf插件實現(xiàn)pdf文檔預覽方式(自動分頁預覽)

    這篇文章主要介紹了vue-pdf插件實現(xiàn)pdf文檔預覽方式(自動分頁預覽),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • vue組件化中slot的基本使用方法

    vue組件化中slot的基本使用方法

    這篇文章主要給大家介紹了關于vue組件化中slot的基本使用方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • vue登錄路由權限管理的項目實踐

    vue登錄路由權限管理的項目實踐

    在開發(fā)Web應用程序時,常常需要進行登錄驗證和權限管理,本文主要介紹了vue登錄路由權限管理的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • Element樹形控件el-tree實現(xiàn)一鍵全選、反選功能

    Element樹形控件el-tree實現(xiàn)一鍵全選、反選功能

    最近做的項目用到了全選全不選功能,于是就自己動手寫了一個,這篇文章主要給大家介紹了關于Element樹形控件el-tree實現(xiàn)一鍵全選、反選功能的相關資料,需要的朋友可以參考下
    2023-10-10
  • vue如何在項目中調用騰訊云的滑動驗證碼

    vue如何在項目中調用騰訊云的滑動驗證碼

    這篇文章主要介紹了vue如何在項目中調用騰訊云的滑動驗證碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • vue.js聲明式渲染和條件與循環(huán)基礎知識

    vue.js聲明式渲染和條件與循環(huán)基礎知識

    這篇文章主要為大家詳細介紹了vue.js聲明式渲染和條件與循環(huán)的基礎知識,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 使用vue3+vite導入圖片路徑錯亂問題排查及解決

    使用vue3+vite導入圖片路徑錯亂問題排查及解決

    使用vue3+vite開發(fā)的時候,導入svg圖片時,同一個文件夾下的文件,其中一個路徑正常解析,另一個不行,更改文件名之后,該圖片文件就可以正常解析了,本文給大家介紹了使用vue3+vite導入圖片路徑錯亂問題排查及解決,需要的朋友可以參考下
    2024-03-03
  • vue 將多個過濾器封裝到一個文件中的代碼詳解

    vue 將多個過濾器封裝到一個文件中的代碼詳解

    這篇文章主要介紹了vue 將多個過濾器封裝到一個文件中實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-09-09

最新評論