vue3 使用svgicon 字体

在components 中定义SvgIcon.vue 文件

内容如下:

<template>

    <svg :style="{ width, height }">

      <use :xlink:href="prefix + name" rel="external nofollow"    :fill="color"></use>

    </svg>

  </template>

   

  <script setup>

  defineProps({

    // 是否显示

    prefix: {

      type: String,

      default: '#icon-',

    },

    name: String,

    color: {

      type: String,

      default: '#000',

    },

    width: {

      type: String,

      default: '16px',

    },

    height: {

      type: String,

      default: '16px',

    },

   

  })

  </script>

  <style lang='scss' scoped></style>

在src plugin 下创建index.js 文件

内容如下:

import SvgIcon from '@/components/svgIcon.vue'

//全局对象

const allGlobalComponents = { SvgIcon }

//对外暴露插件对象

export default {

  install(app) {

    //注册项目的全部组件

    Object.keys(allGlobalComponents).forEach((key) => {

      //注册为全局组件

      app.component(key, allGlobalComponents[key])

    })

  },

}

在main.js 中引入

// svgicon

import 'virtual:svg-icons-register'

import GlobalComponents from '@/plugin'

for (const [key, component] of Object.entries(ElementPlusIconsVue)) {

    app.component(key, component)

  }

app.use(GlobalComponents);

直接在页面中使用就可以了。。

<svg-icon name="video" width="40px" height="40px"></svg-icon>

name 对应icon 的名称

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值