通过设置createFromIconfontCN使Vue3项目支持iconfont图标库

举报
青年码农 发表于 2022/08/24 23:47:30 2022/08/24
【摘要】 本教程讲解的是基于Vue3和Ant Design Vue,前面讲了Vue3项目动态引入iconfont(阿里巴巴矢量图标库),这种这种写法只适用部分情况,现在我们又有了一个新的需求,就是在菜单里面使用iconfont图标,Ant Design Vue在 1.2.0 之后,使用了 SVG 图标替换了原先的 font 图标,之前...

本教程讲解的是基于Vue3和Ant Design Vue,前面讲了Vue3项目动态引入iconfont(阿里巴巴矢量图标库),这种这种写法只适用部分情况,现在我们又有了一个新的需求,就是在菜单里面使用iconfont图标,Ant Design Vue在 1.2.0 之后,使用了 SVG 图标替换了原先的 font 图标,之前a-icon这种写法已经在新的版本中不适用了,就需要换种方式解决。

官方已经提供在新版本使用iconfont图标库的方式,就是通过设置 createFromIconfontCN 方法参数对象中的 scriptUrl 字段, 即可轻松地使用已有项目中的图标。,那我们就在项目实战上,实现iconfont图标库的使用。

1 编写通用方法

教程是基于前面的Vue3项目动态引入iconfont(阿里巴巴矢量图标库),所以本次功能也加载同一个文件里。只在原来基础上加了几句代码,导入createFromIconfontCN,导出IconFont 。


   
  1. **
  2.  * 阿里iconfont配置 
  3.  **/
  4. import { createFromIconfontCN } from '@ant-design/icons-vue';
  5. // 定义iconfont库
  6. let iconfontVersion = ['1135504_hneleglv0jv']
  7. let iconfontUrlCss = `//at.alicdn.com/t/font_$key.css`
  8. let iconfontUrljs = `//at.alicdn.com/t/font_$key.js`
  9. // 定义动态插入方法
  10. const loadStyle = url => {
  11.     const link = document.createElement('link')
  12.     link.type = 'text/css'
  13.     link.rel = 'stylesheet'
  14.     link.href = url
  15.     const head = document.getElementsByTagName('head')[0]
  16.     head.appendChild(link)
  17. }
  18. // 新增 导出
  19. export const IconFont = createFromIconfontCN({
  20.     scriptUrl: iconfontUrljs.replace('$key', iconfontVersion[0])
  21. });
  22. // 动态插入
  23. iconfontVersion.forEach(ele => {
  24.     loadStyle(iconfontUrlCss.replace('$key', ele))
  25. })

2 使用iconfont

上面的代码已经实现了部分功能,下面就是我们使用iconfont了,首先导入

import { IconFont } from "@/utils/iconfont";
  

在 components 中初始化


   
  1. components: {
  2.     IconFont
  3. },

页面使用

<Icon-font type="icon-plane-device" />
  

type里面的值是你iconfont的值,我这里使用的是小飞机这个图标,

f9f1a53bd455f20e9e8c96a55a0f3de8.png

最终效果

0b56a24b8ebdb785a91051c9de8c4a2c.png

上面演示的代码是开源项目,已经上传到gitee,项目是基于Vue3+Ant Design Vue的管理平台项目,最近在更新,增加功能不多,部分效果如下

fbf8dfb524c673f8155ac2d5eb55b9da.png

0b8738ab48549c282996473b35472302.png

有兴趣可以一起完善。

文章来源: blog.csdn.net,作者:NMGWAP,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/NMGWAP/article/details/125066950

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。