nuxt3+vue3 SVG组件封装

nuxt3+vue3 引入阿里图标库并将其封装成组件

1.首先去阿里图标库选择你要使用的图标

在这里插入图片描述

2.选择格式下载图标至本地

![在这里插入图片描述](https://img-blog.csdnimg.cn/81a9889e24994f7c93b9d95cb945f8ff.png

3.下载后放到自己的文件夹下

在这里插入图片描述

4. 在plugins文件夹下新建一个iconfont.js文件 导出文件

在这里插入图片描述

import '~/assets/iconfont/iconfont.css';
import '~/assets/iconfont/iconfont.js';
export default true

5.新建一个文件夹 图标组件

在这里插入图片描述

在这里插入图片描述

<template>
  <svg class="icon-font">
    <use :xlink:href="`#icon-${icon}`"></use>
  </svg>
</template>

<script setup lang="ts">
import {defineProps} from 'vue'
const props = defineProps({
  icon: {
    type: String,
    default: "quanjingshijiao",
  },
});
</script>

<style scoped>

</style>

![在这里插入图片描述](https://img-blog.csdnimg.cn/68e0343808924b94afa9af274f793e9d.png

6.在plugins文件夹下新建个iconComponent.js文件

在这里插入图片描述

import {defineNuxtPlugin} from '#app';
import icon from '../components/svgIcon/index.vue';

export default defineNuxtPlugin((nuxtApp) => {
    nuxtApp.vueApp
        .use(icon)
});

7.直接在代码中使用就好啦 不需要引入组件

在这里插入图片描述

<div class="user-opera">
            <svgIcon class="icon-shezhi" @click="changeSetUp" icon="shezhi"></svgIcon>
            <svgIcon class="icon-kefu" icon="kefu1" @click="getShowAgreement"></svgIcon>
          </div>

8.效果图

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值