vue封装svg组件和iconfont文件引入

vue2 vue3 SVG 九、vue3+vite项目中配置SVG图标_import { createsvgiconsplugin } from 'vite-plugin--优快云博客 阅读详情

封装SVG格式的图片,vue分装成组件步骤如下

1.安装 svg-sprite-loader 插件,运行以下命令:

  npm i svg-sprite-loader -D

2. webpack4.0版本中的配置:在vue.config.js chainWebpack添加配置

 chainWebpack: (config) => {
        config.resolve.alias
            .set('@', resolve('./src'))
            .set('components', resolve('./src/components'))
        //set第一个参数:设置的别名,第二个参数:设置的路径
        // set svg-sprite-loader
        config.module
            .rule('svg')
            .exclude.add(resolve('src/assets/icons'))
            .end()
        config.module
            .rule('icons')
            .test(/\.svg$/)
            .include.add(resolve('src/assets/icons'))
            .end()
            .use('svg-sprite-loader')
            .loader('svg-sprite-loader')
            .options({
                symbolId: 'icon-[name]'
            })
            .end()
    },

3.在 src/assets 目录新建一个 icons 文件夹,里面放三个内容:1)、 存放 .svg 文件的 svg文件夹 ; 2)、 全局注册组件的 index.js 文件 ;3)、svgo.yml 文件。

  • src/assets/icons/index.js --index.js文件
//index.js文件

import Vue from 'vue'
import SvgIcon from '@/components/SvgIcon'// svg component

// register globally
Vue.component('svg-icon', SvgIcon)

const req = require.context('./svg', false, /\.svg$/)
const requireAll = requireContext => requireContext.keys().map(requireContext)
requireAll(req)

 

  • src/assets/icons/svgo.yml --svgo.yml文件
# replace default config

# multipass: true
# full: true

plugins:

  # - name
  #
  # or:
  # - name: false
  # - name: true
  #
  # or:
  # - name:
  #     param1: 1
  #     param2: 2

- removeAttrs:
    attrs:
      - 'fill'
      - 'fill-rule'
  • 测试的svg文件 share.svg(svg文件可以去iconfont上面查找,复制你要的svg格式的代码)
<svg t="1610951706747" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2532" width="200" height="200"><path d="M896 469.333333l-298.666667-298.666667 0 170.666667C298.666667 384 170.666667 597.333333 128 810.666667c106.666667-149.333333 256-217.6 469.333333-217.6L597.333333 768 896 469.333333z"></path></svg>

4.新建SvgIcon组件

目录:src/components/SvgIcon/index.vue

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

<script>
export default {
  name: 'SvgIcon',
  props: {
    iconClass: {
      type: String,
      required: true
    },
    className: {
      type: String,
      default: ''
    }
  },
  computed: {
    iconName() {
      return `#icon-${this.iconClass}`
    },
    svgClass() {
      if (this.className) {
        return 'svg-icon ' + this.className
      } else {
        return 'svg-icon'
      }
    }
  }
}
</script>

<style scoped>
.svg-icon {
  width: 1em;
  height: 1em;
  vertical-align: -0.15em;
  fill: currentColor;
  overflow: hidden;
}
</style>

5.全局注册svgIcon组件

import '@/assets/icons'

6.使用范例:在使用的地方直接写

<svg-icon icon-class="share" />

 

【若依(ruoyi)】自定义 iconfont 图标库的完整实践指南 本文提供了在若依(ruoyi)框架中集成自定义iconfont图标库的完整实践指南。详细讲解了从iconfont创建项目、下载资源、本地集成到Vue全局注册的全过程,并重点介绍了在页面和侧边栏菜单中使用自定义图标的方法,帮助开发者实现品牌化、专业化的界面定制。 阅读详情

相关推荐

Vue3+ElementPlus项目使用iconfont阿里图标

回顾一下上篇文章的内容,Element UI 使用的是阿里巴巴的图标库,通过字体图标的用法(即使用 el-icon-xxx 的类名)来引入图标。。而Element Plus 抛弃了字体图标的用法,而直接使用了 svg 图标。   那么在Element Plus框架内使用阿里图标又该如何实现?本篇文章就是讲述Vue3+ElementPlus项目使用iconfont阿里图标的方法。

qq_45438471的博客 6292

vue3.0项目中添加svg图标

vue 3.0 项目中 添加svg图标

ZhuTianLunHui的博客 595

OAI数据集申请与实战:从权限获取到医学影像分析应用

本文详细介绍了OAI数据集的申请流程与医学影像分析实战应用。从NDA账户注册、数据下载技巧到骨盆X光关键点检测的完整实现,帮助医学研究者高效利用这一权威骨关节炎数据集。特别分享使用Pei Y标注数据训练U-Net模型的经验,包括预处理、注意力机制优化等实用技巧。

weixin_30275415的博客 478

Vue项目使用SVG矢量图型基础步骤

Vue项目svg适量图形的基础用法

AKindofo的博客 3138

LabVIEW数据采集-数字I/O/计数器

labview 数据采集 数字I/O 计数器

weixin_43781045的博客 5617

WPS接入DeepSeek,实现AI辅助功能

总的来说,借助 WPS 中宏功能与 DeepSeek 大模型的结合,文档处理、内容创作和数据分析等任务都能更加智能化、自动化。这不仅大幅提升了工作效率,也为办公场景带来了全新的智能化办公体验。

运维老生常谈 3804

nuxt中使用svg 开发svg组件

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

web_ding的博客 1156

【VS Code+Verilog+Vivado使用】(1)常用插件

VS Code + Verilog + Vivado联合使用说明

XDUryan的博客 5636

Vue中使用SVG-ICON

在Vue中使用svg-icon,可以按如下配置即可。 1、src/components/SvgIcon目录下创建index.vue,代码如下: <template> <svg :class="svgClass" aria-hidden="true" v-on="$listeners"> <use :xlink:href="iconName" /> </svg> </template> <script> expo...

遇事不决,可问春风。 953

YOLOv8 置信度阈值 (conf) 和 IoU 阈值 (iou) 详解:如何平衡漏检与误检?

摘要 本文深入探讨了YOLOv8目标检测模型中两个关键参数——置信度阈值(conf)和IoU阈值(iou)的核心作用。文章从目标检测的基础概念出发,解释了置信度分数反映模型预测可靠性,IoU衡量预测框重叠程度。重点剖析了非极大值抑制(NMS)机制如何通过这两个阈值进行预测框筛选:置信度阈值作为初筛门槛,IoU阈值决定重叠框的取舍。通过生动比喻和可视化图表,阐述了合理调节这两个参数能有效平衡误检与漏检问题,是优化YOLOv8模型实际表现的重要技巧。全文以实践为导向,帮助开发者掌握成为"调参大师&qu

深耕 Vue 生态与 JS/TS 技术,聚焦组件封装、响应式原理、TS 类型设计,解析工程化配置与性能优化方案。同时分享 YOLOv8 目标检测实战、AI 大模型面试核心考点,以代码实例拆解技术实现与业务解法。 1242

制作一个完整的Shopify主题

Liquid是Shopify的模板语言,用于动态渲染页面内容。Liquid是Shopify的模板语言,用于动态渲染页面内容。Shopify主题包含多个文件和文件夹,包括布局、模板、部分、配置和资产文件夹。Shopify主题包含多个文件和文件夹,包括布局、模板、部分、配置和资产文件夹。准备好你的主题后,可以将其提交到Shopify主题商店。确保你的主题符合Shopify的质量标准和指南。准备好你的主题后,可以将其提交到Shopify主题商店。确保你的主题符合Shopify的质量标准和指南。

luckucu的博客 175

VUE svg图标

添加 svg 图标

K_lele的博客 767

Qt —— 调用海康C++版SDK获取摄像头每帧图像,通过OpenCv处理每帧图像后显示在Qt窗口(附:源码)

  关注 笔者 - jxd 微信公众号搜索 “码农总动员” 或 微信扫描下方二维码,了解更多你不知道的XX,O(∩_∩)O

5447

vue中通过svg方法导入icon图标

m0_57932116的博客 2108

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

在Vue3+vite+ts中引入iconfont矢量图标库

最后总结一下,如果有兄弟按照我这个步骤写完之后不能显示,那么可能的主要问题是:你的iconfont中没有对应的图标,或者你的引入路径出错了,再或者你在使用的时候出错了,这里的封装其实就是父子传值,所以你只需要按照父子传值的那种方法正确的传值,应该就不会出错了。随着iconfont的更新,还有前端技术的发展,越来越多的人用了vue3+vite+ts了,鄙人最近正好在写一个基于这些技术搭建的项目,也是从小白一路慢慢摸索的。1:选择自己创建的项目中的symbol这里,查看一下在线链接,// 给图标添加上类名。

m0_67141709的博客 2161

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Vue项目----iconfont图标的使用

最后到此结束。想深入学习iconfont的小伙伴可以仔细专研一下前言中的文章。

weixin_69889539的博客 1628

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

「初学者商城」- 后台 - icon 矢量图(新功能)

1. 前言 项目中的精致小图一般都是使用的矢量图,矢量图比位图的优势在于:小,不失真,轻松改变颜色和大小等。 2. 源码 完整项目地址:https://github.com/intomylife/osc-front v1.4.2 标签地址:https://github.com/intomylife/osc-front/releases/tag/v1.4.2 v1.4.2 下载地址:zip,t...

我的博客 2227

在vue中使用symbol引用iconfont矢量库

本文介绍了两种在项目中引入图标和字体的方法。对于图标库,需在assets目录创建iconfont.js文件并复制在线代码,然后在main.ts引入并封装SvgIcon.vue组件。该组件通过props接收图标名称、类名和颜色参数,使用svg标签渲染图标。对于字体库,同样在assets目录创建font.css文件并复制代码,在main.ts全局引入后,即可通过指定font-family使用自定义字体。两种方法都提供了清晰的实现步骤和代码示例,方便开发者快速集成。

m0_49385985的博客 633

Vue项目中使用iconfont中的svg图标

iconfont 地址 同时使用下图svg,看下封装前后使用图标的差距 前 直接复制svg地址去使用,看着都头疼 后 一行搞定,真香 不废话,直接步奏 一. 安装依赖: npm install svg-sprite-loader --save-dev package.json看是否安装成功 二。build文件夹中的webpack.base.conf.js,...

H的博客 8389

vue中引入.svg图标,使用iconfont图标库

vue中引入.svg图标,使用iconfont图标库 阿里巴巴的iconfont是一个很好的图标库 创建SvgIcon组件 <template> <svg :class="svgClass" aria-hidden="true"> <use :xlink:href="iconName"></use> </svg> </template> <script> export default { name: '

口袋的天空的博客 998

vue项目中引入阿里图标SVG_Allione_新浪博客

引入过程中出现的问题:页面没有出现图标,原因:在main.js中没有引入iconfont.js 1、阿里demo中的引入方式: 2、我的引入方式(参考别人的项目) 上图中的引入方式,在iconfonts.js中注册了标签 我的方式是在上面的基础上封装了一层,每次使用的时候可以不用写 我的目录结构: icons/svg中放所有的图标文件 1)index.js中代码功...

dsydly的博客 353

Vue3 项目引入阿里 iconfont 图标和字体的多种方式

对比阿里图标库提供的3种图标引用方式:unicode、font-class、symbol。以及在vue3+vite+ts的项目中封装并使用阿里iconfont图标组件,以及如何使用阿里字体图标。

共同学习,共同成长 5724

Vue3 项目引入阿里 iconfont 图标和字体

Vue3 项目引入阿里 iconfont 图标和字体

weixin_42365757的博客 1万+

使用 iconfont 中的 svg 图标

最近在使用 Element-UI开发的时候发现其图标并不是够用,于是想着如何将 https://www.iconfont.cn/home/index 上面的图标导入进自己的项目中去。 网上的搜索结果基本都是传统的引入CSS的方法,并没有使用到SVG的特性,这里介绍使用SVG来引入图标,这中方式普适任意的组件库。 首先我们在iconfont上新键好自己的项目并下载至本地,打开之后其文件如下 我们只...

未思 1万+

实现在项目中使用iconfont自定义图标,vue3项目引入,封装成组件使用

本文主要讲解如何在vue3项目中使用iconfont自定义图标,以及如何将iconfont封装成组件,使用时方便快捷

Sherry Tian的博客 1893
上一篇: 前端 视频标签 video的一些特殊属性详解
下一篇: 常用的npm包介绍和坑
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

时光机上敲代码

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值