基于vue3 + ant-design 自定义SVG图标iconfont的解决方案;ant-design加载本地iconfont.js不显示图标问题

本文讲述了在Vue3项目中使用Ant-Design时,如何解决从阿里巴巴矢量图标库下载的iconfont.js本地加载问题,以及提供的三种尝试方案和最终成功解决的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于vue3 + ant-design 自定义SVG图标iconfont的解决方案;
ant-design加载本地iconfont.js不显示图标问题

一、准备工作

1、首先去阿里巴巴矢量图标库自定义添加自己的图标;网站地址https://www.iconfont.cn/
整个步骤是:选择图标–添加到项目-项目设置-下载到本地
在这里插入图片描述
已经选择的图标
在这里插入图片描述

下载到本地后,iconfont提供三种图标使用的方案;分别是:Unicode 、Font class、 Symbol;本次我们使用Symbol 方式,只需要拿到iconfont.js文件放到我们实际项目中即可;其他文件是不需要
在这里插入图片描述

二、图标使用

1、ant-design官网给的教程方案是如下图
在这里插入图片描述
官网教程中对于使用 iconfont.cn 的用户,通过设置 createFromIconfontCN 方法参数对象中的 scriptUrl 字段, 即可轻松地使用已有项目中的图标。

2、把刚刚从阿里巴巴适量图库中下载到的iconfont.js文件放到项目中;我放的文件是项目中src/assets/iconfont/iconfont.js文件下
在这里插入图片描述
3、在main.js中使用,


// 方案一(测试不行、显示本地和云上的都不显示)
// import iconfrontjs from './assets/iconfont/iconfont.js'
// const IconFont = Icon.createFromIconfontCN({
//   scriptUrl: iconfrontjs
// })

// 方案二(测试不行、显示本地和云上的都不显示)
// import * as iconfontJS from './assets/iconfont/iconfont.js'


// 方案三
import { iconFontJS } from '@/assets/iconfont/iconfont.js'
const IconFont = antIcons.createFromIconfontCN({
  //scriptUrl: '@/assets/iconfont/iconfont.js',//掉用本地iconfont.js资源不显示,加载不成功本地资源显示不出来图标
  //scriptUrl: './assets/iconfont/iconfont.js',//掉用本地iconfont.js资源不显示
  //scriptUrl: '//at.alicdn.com/t/c/font_9229502_ia8wtqn.js',//掉用云上iconfont库资源显示图标
  scriptUrl: iconFontJS,//掉用本地iconfont.js资源显示图标,最终方案
});


app.component('IconFont', IconFont);

在这里插入图片描述
页面上的使用

<IconFont :type="item.typeSVGIcon"></IconFont>
              <IconFont :type="item.typeSVGIcon"></IconFont> type=“图标名称”,如;<IconFont :type="ysc_kpi_o"></IconFont>

最终显示效果如图:
在这里插入图片描述

图标不显示的原因最终找到;是因为加载本地资源不成功;所以显示不出来;在此记录一下问题的解决方案;方便后期查阅

<think>嗯,用户想了解在Ant-Design-Vue中使用图标的方法。首先,我需要回忆一下相关的文档和引用内容。根据提供的引用,引用[1]提到了安装Ant-Design-Vue和引入样式,这可能和图标的使用有关。引用[2]中的示例代码展示了如何在a-tree组件中使用a-icon,并指定slot来替换默认图标,这说明可以通过slot来自定义图标。引用[3]则列出了基础组件的介绍,可能包含图标组件的说明。 接下来,我需要整理图标使用的几种常见方式。Ant-Design-Vue图标通常有两种使用方式:直接使用内置图标自定义图标。根据版本的同,可能还有同的引入方式。比如,在1.x版本中,可能需要单独安装@ant-design/icons-vue,而在2.x版本中可能已经内置了图标组件。 然后,用户可能需要具体的代码示例,比如如何在组件中引入和使用图标。例如,使用a-icon标签并指定type属性来显示内置图标。另外,按需加载也是常见的需求,用户可能想知道如何仅引入需要的图标以减少包体积。此外,自定义图标的方法,比如使用slot或者替换默认图标,如引用[2]中的例子,可能需要详细说明。 还需要注意样式的引入,引用[1]中提到要在入口文件引入antd.css,否则图标可能无法显示样式。此外,主题配置可能影响图标的颜色和大小,这也是用户可能遇到的问题。 可能用户会遇到的问题包括图标显示,这可能是由于没有正确引入样式或图标包,或者版本兼容。需要提醒用户检查安装的版本和引入方式是否正确。另外,在自定义图标时,slot的名称是否正确,以及是否在正确的组件中使用slot,这些都需要注意。 最后,生成相关问题时,需要考虑用户可能进一步想了解的内容,比如如何自定义图标颜色、大小,或者如何处理图标的事件交互,以及性能优化方面的按需加载等。</think>### Ant-Design-Vue 图标使用教程 #### 一、图标基础使用 1. **引入图标组件** Ant-Design-Vue 1.x 需单独安装图标库,2.x 已内置图标组件。若未安装,运行以下命令: ```bash npm install @ant-design/icons-vue --save ``` 在 Vue 文件中引入: ```javascript import { UserOutlined, HomeFilled } from &#39;@ant-design/icons-vue&#39;; ``` 2. **直接使用内置图标** 通过`<a-icon>`组件的`type`属性指定图标类型: ```html <a-icon type="search" /> <a-icon type="arrow-up" :rotate="45" /> ``` 支持动态属性如`rotate`(旋转角度)、`spin`(旋转动画)[^3]。 #### 二、按需加载自定义配置 1. **按需加载图标** 修改`babel.config.js`配置,仅加载使用到的图标: ```javascript module.exports = { plugins: [ [ "import", { libraryName: "@ant-design/icons-vue", libraryDirectory: "es/icons", camel2DashComponentName: false } ] ] }; ``` 2. **替换组件默认图标** 如替换 Tree 组件的展开图标(参考引用[2]示例): ```html <a-tree> <a-icon slot="switchIcon" type="caret-down"/> <a-icon slot="FolderFolder" type="dropbox"/> </a-tree> ``` 通过`slot`属性覆盖特定场景的图标[^2]。 #### 三、自定义图标 1. **使用第三方图标库** 结合`<a-icon>`封装 SVG 图标: ```html <a-icon :component="MySvgIcon" /> ``` 其中`MySvgIcon`为自定义Vue 组件。 2. **主题色适配** 通过 CSS 覆盖默认样式: ```css .anticon { color: #1890ff; /* 主题色 */ font-size: 20px; } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值