SVG组件

vue3+vite:封装Svg组件 vite-plugin-svg-icons 是一个 Vite 插件,用于在 Vite 2 项目中方便地使用 SVG 图标。它可以自动将 SVG 图标文件转换为 Vue 组件,并且提供了一些配置选项来自定义生成的组件。 阅读详情

这个组件是一个封装的 SVG 图标组件,用于统一加载 iconfont(通过 <use> 标签引用),支持传入图标名称、颜色、额外类名,适用于基于 iconfont.cn 等平台导出的 symbol 图标集。

<template>
  <svg :class="svgClass" aria-hidden="true">
    <use :xlink:href="iconName" :fill="color" />
  </svg>
</template>
​
<script lang="ts">
  import { defineComponent, computed } from 'vue'
​
  export default defineComponent({
    props: {
      iconClass: {
        type: String,
        required: true,
      },
      className: {
        type: String,
        default: '',
      },
      color: {
        type: String,
        default: '',
      },
    },
    setup(props) {
      return {
        iconName: computed(() => `#icon-${props.iconClass}`),
        svgClass: computed(() => {
          if (props.className) {
            return `svg-icon ${props.className}`
          }
          return 'svg-icon'
        }),
      }
    },
  })
</script>
​
<style scope lang="less">
  .nav-icon {
    position: relative;
    display: inline-block;
    margin-right: 12px;
    font-size: 15px;
  }
​
  .svg-icon {
    position: relative;
    width: 1em;
    height: 1em;
    vertical-align: -2px;
    fill: currentcolor;
  }
</style>

二、组件结构分析

template 模板部分
vue复制编辑<svg :class="svgClass" aria-hidden="true">
  <use :xlink:href="iconName" :fill="color" />
</svg>
说明:
  • 使用 <svg> 结合 <use> 标签,实现 SVG 图标的复用。

  • :xlink:href="iconName":绑定图标路径,如 #icon-home。

  • :fill="color":支持自定义图标颜色。

  • :class="svgClass":支持额外类名传入,用于样式定制。

  • aria-hidden="true":屏蔽图标的可访问性(不被辅助工具识别为可交互元素)。

属性(props)说明:
Prop 名称类型是否必填说明
iconClassString是图标的名称,如 home
classNameString否额外添加的类名(样式扩展)
colorString否图标颜色

setup() 返回:
  • iconName:返回 #icon-${iconClass},拼接 symbol id。

  • svgClass:返回一个 class 字符串,基础类名是 svg-icon,可追加自定义类名。

三、使用方式示例

在父组件中使用:
<svg-icon icon-class="home" class-name="custom-style" color="#42b983" />
Vue3+Ts+Element-plus项目,svg图标组件封装、使用(阿里图标库)。 阅读详情

相关推荐

svg图标转组件引入项目中

在 Vue.js 中,动态组件可以根据不同的数据或状态加载不同的组件。具体来说,你可以使用 is 特性来指定要渲染的组件,该组件的名称通常是一个绑定的变量,根据需要可以在运行时进行更改。在上述代码中,IconResult403 是SVG图标的组件名,你可以在模板中像其他组件一样使用它。并不是一个特定的 HTML 元素,它更可能是一个占位符,代表一个在 Vue.js 中的动态组件。,该组件的名称通常是一个绑定的变量,根据需要可以在运行时进行更改。,代表一个在 Vue.js 中的动态组件。

will5451的博客 884

svg 组件

svg

fkkkkkf的博客 889

aria-hidden="true"

背景: <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners"> <use :xlink:href="iconName" /> </svg>

郭宝的博客 5374

vue2&3自定义svg图标组件

可参考: 未来必热:SVG Sprites技术介绍 懒人神器:svg-sprite-loader实现自己的Icon组件 在Vue3项目中使用svg-sprite-loader

pscool的博客 6872

「Vue组件化」封装SVG图标

首先创建一个用于加载SVG文件的Vue组件。将SVG文件放在项目的某个目录下,例如components/svgIcon/。创建一个函数来动态导入SVG文件,并注册到Vue组件中。在项目中通过组件标签使用SVG图标。

拥抱AI Design 1245

[华为ensp]双核心的园区网

(给部分只会emm......借鉴的朋友提个醒,在group-member e0/0/2 to e0/0/20是所选,所以到了p l t那会给2-20端口都配置上trunk,别紧张,不是你问题)完成上述配置后,PC1可以ping通HTTP2服务器,Client1可以访问HTTP2服务器的HTTP站点,如果不能就要检查上述是否正确。本次实验主要目的是采用双核心的冗余网络,采用MSTP和VRRP技术,在核心层交换机上配置SC1上配置OSPF协议。SC1交换机上配置VRRP。在SC1上配置DHCP。

2301_78859499的博客 1416

SVG组件封装

SVG组件封装 SvgIcon/index.vue <template> <svg :class="svgClass" aria-hidden="true" v-on="$listeners"> <use :xlink:href="iconName"></use> </svg> </template> <script> export default { name: 'SvgIcon', pr

liuj4 | 自娱自乐 506

C++实战:基于ONNX Runtime与OpenCV部署XFeat图像匹配模型

本文详细介绍了在C++环境中,利用ONNX Runtime与OpenCV高效部署XFeat图像匹配模型的完整流程。内容涵盖环境搭建、模型转换、核心代码封装及可视化实现,旨在帮助开发者将这一先进的深度学习模型集成到对性能要求苛刻的工业或嵌入式应用中,实现鲁棒且快速的特征匹配。

gpu4optimizer的博客 522

封装svg组件

如何封装svg图标组件 封装svg图标组件的方法有很多种,如果只是单纯的想使用svg图标,可以将svg导出fonts字体图标使用,但这样做会失去svg原有的样式与尺寸,也可以当成img图片或者背景引入,但这样做非常繁琐。 最近项目中需要用大量的svg图标,这里介绍一种通过vue组件使用svg图标的方式: 首先了解一下svg图标的use元素。 <svg> <defs> ...

weixin_34355715的博客 1548

30. 如何使用 SEGW 的 redefine 功能对 SAP 标准 OData 服务进行扩展

SAP 发布了很多标准的 Fiori 应用,可以通过笔者的文章里提到的进行浏览。比如 My Opportunities 就是 SAP CRM 领域的一个 Fiori 应用:下图是 Opportunity 明细页面的 Info 标签页:假设我们想在这些标准字段的末尾增添一个新字段 Created By,用来维护当前 Opportunity 的创建者。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1174

【水文学法总结】河道内生态流量计算方法(含MATLAB实现代码)

简介水文学法实现河道内生态流量计算

WW、forever的博客 5017

svg-icon的使用(定义svg-icon组件来使用svg图标)

所以考虑自定义一个组件,用来显示自定义的。图标,没有固定的方式来显示。

qq_43780332的博客 4002

YOLOv11改进策略【损失函数篇】| arXiv2025 TeLU双曲正切指数线性单元 强梯度防消失 + 解析光滑稳训练,极速提升收敛与泛化

本文记录的是。TeLU(Hyperbolic Tangent Exponential Linear Unit)通过。本文利用TeLU激活函数,以x⋅tanhex统一实现正区间强梯度加速收敛与负区间持续梯度避免死神经元,全程保持解析光滑与极低计算开销,,显著提升深度网络在分类、检测、分割、时序任务中的收敛速度、精度与泛化鲁棒性。

Limiiiing的博客 224

svg组件

在main.js中引入 import './icons' 在components的SvgIcon文件,在此文件夹中写svg组件 svg组件 <template> <svg :icon-class="svgClass" aria-hidden="true"> <use :xlink:href="iconName" /> </svg> </template> <script> export default {

qq_41742961的博客 533

杰理蓝牙SPP用户接口详细文档

本文档详细介绍了基于JL701n芯片的蓝牙SPP用户接口实现。主要内容包括:1) 文件结构分析,包含必要的头文件和调试配置;2) 核心数据结构,如全局变量和TWS功能ID定义;3) 五大功能模块实现:数据发送、状态管理、数据接收、TWS支持和初始化清理;4) API接口说明,包括公共接口函数和回调函数;5) 使用教程,涵盖基本流程和高级应用示例。该接口支持虚拟串口连接,实现蓝牙设备间数据传输,特别针对TWS场景进行了优化,提供连接状态管理、数据收发等功能。文档还包含错误处理、重试机制等实用建议,适合蓝牙SP

qq_42014563的博客 1179

手把手教程 | 使用 apktool 修改已发布 APK 的版本号与版本名称

摘要:本文介绍如何使用apktool工具直接修改APK版本信息,适用于版本回滚、多版本测试等场景。详细步骤包括反编译APK、修改版本号、重打包、对齐优化和重新签名,并分享了反编译相关实用知识。该方法无需源代码参与,但需注意修改后的APK必须重新签名才能安装。最后强调应在合法范围内使用反编译技术。

学无止境 827

在Vue组件中,使用svg

1. 安装加载器 在当前项目下,安装加载器。 npm install svg-sprite-loader --save-dev 2. 配置文件 修改配置文件中的相关信息。 // svg加载器,用以加载svg。 { test: /\.svg$/, loader: 'svg-sprite-loader', include: [resolve('src/asse...

qq_41948178的博客 590

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

vue项目封装svg组件

封装svg组件

qq_44441669的博客 2384

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

svg组件使用

SVG。

m0_68336608的博客 490

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Nova UI】十、打造组件库第一个组件-图标组件(下):从.svg 到 SVG Vue 组件的高效蜕变✨

在组件库开发中,我们已经成功打造并完善了图标组件体系。然而,随着业务版图的不断扩张,手动逐个编写 SVG Vue 组件的传统方式,逐渐暴露出效率低下的短板,今天,一同踏上探索自动化生成的奇妙之路。

拖孩 1252

nuxt中使用svg 开发svg组件

为什么要使用SVG 虽然我们在日常开发的时候,在使用iview 或者element ui等组件时,通常会包含一些常用icon;但是在面对一些特定的需求时,或者自己想high一下,这些通用的icon并不能很好的满足我们。这个时候我们可能会拿到一些SVG适量图,但是怎么去使用这些矢量图呢。 项目目录 这里以基于Nuxtjs的开发为例: 要使用SVG矢量图,在这里会使用到上述匡出来的文件。 其中在asserts中放置一些图片资源(个人习惯)如图所示: 在compo...

web_ding的博客 1156

vue svg放大缩小组件_Vue组件,用于自定义您的svg文件

vue svg放大缩小组件 vue-svg-filler (vue-svg-filler) Vue component for customize your svg file. Vue组件,用于自定义您的svg文件。 View demo 查看演示 Download Source 下载源 安装 (Install) npm install vue-svg-filler --save 用...

cuk5239的博客 1109

在vue中封装一个svg组件

在vue中封装一个svg组件   第一步:     在vue脚手架生成的文件夹下的src/components创建一个Svg 在components-&gt;xx.vue &lt;template&gt; &lt;svg :class="svgClass" aria-hidden="true"&gt; &lt;use :xlink:href="...

hx_1199的博客 1311

svg全局组件

全局注册组件 安装 npm install svg-sprite-loader -D 配置build/webpack.base.conf.js 创建svg组件代码文件 创建index.vue文件将以下内容写入 iconName是svg文件的名字, svgClass是自己定义的类名 <template> <svg :class="svgClass" aria-hidden=...

hadry123的博客 823
上一篇: 时间格式化函数
下一篇: Goole调试工具的使用
BugCollect
博客等级 码龄1年 104粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值