vue3中把封装svg图标为全局组件

在vue3中我们使用svg图标是下面这样子的

vue 复制代码
    <svg style="width:30px;height:30px;">
      <use xlink:href="#icon-phone" fill="red"></use>
    </svg>

第次使用图标都要写这么多重复的代码,很不方便,所以,如果我们把它封装成全局的组件, 就可以很方便的使用了

首先我们要看 svg 图标使用时 变化的部分有哪几个

所以我们新建一个组件 SvgIcon

SvgIcon.vue 的代码如下

.vue 复制代码
<script setup lang="ts" name="SvgIcon">
  let props = defineProps({
    iconname: {
      type: String,
      default: '',
    },
    width: {
      type: [Number,String],
      default: 16,
    },
    height: {
      type: [Number,String],
      default: 16,
    },
    color:{
      type:String,
      default:'#666'
    }
  })
</script>

<template>
  <div class="wrapper">
    <svg :style="{width:width+'px',height:height+'px'}">
      <use :xlink:href="`#icon-${iconname}`" :fill="color"/>
    </svg>
  </div>
</template>

<style scoped>

</style>

在页面中调用就可以了


以上是在单组件中调用, 每次使用 都要引入才可以使用,我们现在把它设置成全局组件,就不需要 每个调用的地方都要 import SvgIcon from "@/components/SvgIcon.vue";

我们只需要在 main.ts中注册自定义的组件为全局组件就可以了

相关推荐
陈随易12 小时前
Postman 被曝自动往 Claude Code 和 Codex 装插件
前端·后端·程序员
Dream-Y.ocean14 小时前
鸿蒙PC平台宅匠 3D 室内设计适配实战:基于 Electron 壳方案的 Three.js 双渲染引擎与参数化户型编辑器开发
javascript·3d·harmonyos
Csvn15 小时前
性能监控
前端
Highcharts.js15 小时前
Highcharts Gantt使用符号的自定义数据标签开发甘特图示例
javascript·甘特图·highcharts·图表开发·实战代码·响应式图表
Csvn16 小时前
构建工具
前端
FRing0316 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
Java小卷17 小时前
JuanForm vs FormCreate!Vue3 表单引擎联动配置 PK!
vue.js·低代码
kyriewen18 小时前
Skills 榜前 10 我全装了:只有 3 个能直接用
前端·javascript·程序员
IT_陈寒19 小时前
当Java的hashCode遇上Lombok,我的缓存被全清了
前端·人工智能·后端
工控丫丫19 小时前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库