Vue3+vite引入阿里图标库的三种方式和封装svg组件

引入阿里图标

  • 下载图标代码

  • 将解压包放在asset下 我们只需要一下几个文件即可:

├── font
   ├── iconfont.css
   ├── iconfont.json (font-class用法)
   ├── iconfont.js (symbol用法)
   ├── iconfont.ttf
   ├── iconfont.woff
   └── iconfont.woff2

unicode 格式

  • 全局引入图标 在main.js里引入图标样式

import './assets/font/iconfont.css'
  • 使用

 <i class="iconfont">&#xe62e;</i>

font-class 方式

主要在iconfont.json 文件里,引入方式跟unicode 格式一样

  • 使用

 <i class="iconfont icon-XXX"></i>
 <i class="iconfont icon-biaoqing"></i>

symbol 方式

主要利用了 svg 这种格式,在main.js全局引入或者在使用的页面引入

import './assets/font/iconfont.js'
- 使用方法
``` html
<svg class="icon" aria-hidden="true">
    <use xlink:href="#icon-xxx"></use>
</svg>

建议使用svg的格式,主要是它支持多色图标了,不再受单色限制。可以通过一些技巧,支持像字体那样,通过 font-size,color 来调整样式。

我们也可以自己封装一个svg组件,不封装就直接使用以上的使用方式。

封装svg组件

当我们使用阿里图标库的symbol 方式引入图标是,要用一下方式显示:

<svg class="icon" aria-hidden="true">
    <use xlink:href="#icon-xxx"></use>
</svg>

我们可以对其进行封装,组件名为 Gasvg

<template>
  <svg :class="iconClass" aria-hidden="true">
    <use :xlink:href="iconName" :fill="color"></use>
  </svg>
</template>

<script setup>

// 定义属性
import {computed} from "vue";

const props = defineProps({
  // 图标名,必填
  icon: {
    type: String,
    required: true
  },
  // 图标class
  iconClass: {
    type: String,
    default: 'icon' //默认值
  },
  // 图标颜色
  color: {
    type: String,
    default: ''
  }

})
// 图标拼接 #
const iconName = computed(() => {
  return `#${props.icon}`
})
</script>

使用:

<ga-svg icon="icon-xxx" color="#409eff"/>
<ga-svg icon="icon-xxx" iconClass="iconfont"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_35430208

您的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值