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中注册自定义的组件为全局组件就可以了

相关推荐
晴殇i1 分钟前
前端视角下的单点登录(SSO)从原理到实战
前端·面试·trae
圆心角3 分钟前
深入解析协商缓存(弱缓存)
前端·浏览器
鹏北海13 分钟前
vue-route-query-hook:一个用于 Vue 3 的 Composable,提供响应式参数与 URL 查询参数之间的双向同步功能
前端·javascript·vue.js
VisuperviReborn24 分钟前
打造自己的前端监控---前端接口监控
前端·javascript·架构
程序员海军24 分钟前
这才是Coding该有的样子!重新定义编程显示器
前端·后端
阳树阳树25 分钟前
小程序鉴权机制分析
前端
BUG收容所所长25 分钟前
如何用React打造一个完整的移动端问卷调查应用?
前端·react.js·开源
Cache技术分享27 分钟前
151. Java Lambda 表达式 - 使用 Consumer 接口处理对象
前端·后端
YGY_Webgis糕手之路28 分钟前
OpenLayers 综合案例-加载gif图
前端·gis
小高00730 分钟前
🚀前端性能优化实录:把 5 秒白屏降到 1.2 秒,只做 7 件事
前端·javascript·面试