Vue3项目动态引入iconfont(阿里巴巴矢量图标库)

本文介绍了在Vue3项目中如何动态引用阿里巴巴的Iconfont矢量图标库。首先在utils文件夹下创建iconfont.js,定义方法动态加载iconfont文件,然后在public/index.html配置选择器,main.js中导入,最后在组件中按需使用,实现动态加载效果。

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

Iconfont-国内功能很强大且图标内容很丰富的矢量图标库,提供矢量图标下载、在线存储、格式转换等功能。阿里巴巴体验团队倾力打造,设计和前端开发的便捷工具

这篇文章主要讲的是在Vue3项目上,动态引用iconfont库。iconfont怎么新建项目,这里就不多说了,我们要用到的就是下方圈出来的。

5d772ac87a12d15968ca879e438ebad4.png

1.定义方法

我们定义一个方法,动态通过link引入我们的iconfont文件,在项目中新建文件夹utils,这个文件夹存放我们自定义的方法,文件夹下新建iconfont.js,内容如下:

/**
 * 阿里iconfont配置 
 **/

// 定义iconfont库
let iconfontVersion = ['1135504_hneleglv0jv']
let iconfontUrlCss = `//at.alicdn.com/t/font_$key.css`

// 定义动态插入方法
const loadStyle = url => {
    const link = document.createElement('link')
    link.type = 'text/css'
    link.rel = 'stylesheet'
    link.href = url
    const head = document.getElementsByTagName('head')[0]
    head.appendChild(link)
}

// 动态插入
iconfontVersion.forEach(ele => {
    loadStyle(iconfontUrlCss.replace('$key', ele))
})

iconfontVersion这个数组变量里面的就是上面圈的路径,每个项目路径基本都是这块在变,所以提取出来,这里为什么用数组呢,因为项目可能有多个图标库。这里面基本不需要修改,修改的就是iconfontVersion这里面的。

2.配置选择器

选择器需要配置下,在public/index.html文件中加入以下代码:

[class^="icon"] {
  font-family: "iconfont" !important;
  font-size: 18px !important;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

icon这个是根据你的iconfont项目FontClass/Symbol 前缀来变化的,我上面演示的是以icon开头。

3.main.js导入

在项目main.js中导入

// 动态插入iconfont
require('./utils/iconfont');

4.使用

在需要使用的地方

<i class="iconfont iconyonghuming"></i>

iconfont 这个一定要有,后面的这个是项目fontclass的名字。

5.效果

右侧输入框的小图标就是iconfont

d8e7969088fb8d23bb67604557c1a61d.png

### 如何在 Vue 项目引入和使用阿里巴巴矢量图标库 #### 方法一:通过 Unicode 方式使用图标 可以采用 Unicode 编码的方式来使用 Alibaba Vector Icon Library (Iconfont) 中的图标。这种方式需要先完成以下步骤: 1. 登录并访问 [Alibaba Vector Icons](https://www.iconfont.cn/) 平台,创建一个新的项目或者选择已有的项目。 2. 将所需的图标加入购物车,并将其添加到所选项目中[^3]。 3. 下载项目的压缩包,在解压后的 `demo_index.html` 文件中查看每种图标的 Unicode 值以及对应的 HTML 实现方法。 接着在 Vue 项目中的具体实现如下: - 需要在全局样式文件(如 `main.js` 或者单独的 CSS 文件)里加载字体资源路径; - 使用 `<i>` 标签配合指定字符编码来展示目标图形符号。 ```javascript // main.js import &#39;@/assets/iconfont/iconfont.css&#39;; // 引入iconfont.css ``` 页面组件内的调用实例: ```html <i class="iconfont"></i> <!-- 替换为实际使用的unicode --> ``` #### 方法二:利用 Font Class 来应用图标 另一种常见做法就是借助类名机制定义好各个不同的图片对象关联关系之后再加以运用即可达到相同效果。同样也需要经历上述提到过的准备工作流程后再继续操作下去。 主要区别在于这里会依赖于特定前缀加上自定义名称构成最终呈现出来的视觉元素形式。 配置过程大致如下所示: ```css /* 示例 */ @font-face { font-family: &#39;iconfont&#39;; src: url(&#39;...&#39;); /* 图标字体地址 */ } .iconfont{ font-family:"iconfont" !important; speak:none; font-style:normal; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } .icon-example:before { content: "\e90f"; } /* 对应的具体glyph codepoint */ ``` 然后就可以像这样简单地嵌套进去了: ```html <i class="iconfont icon-example"></i> ``` 另外还有一种叫做 Symbol 的模式可供选用,不过相对来说较为复杂一点而且兼容性方面可能存在问题所以不推荐初学者轻易尝试除非确实存在特殊需求场景才行。 综上所述无论是哪一种途径都能够很好地解决日常开发过程中遇到的各种各样关于图像素材方面的难题啦! --- ### 注意事项 确保正确设置相对或绝对URL指向至服务器端部署好的静态资源位置以便顺利渲染出来;同时也要记得及时更新版本号防止缓存干扰正常显示结果哦[^4]。 ```python # 如果是动态切换主题颜色等情况,则可以通过修改变量值重新编译SCSS等方式处理 $primary-color: #ff5722; body { color: $primary-color; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值