umi4+vue3项目中添加iconfont图标

  • Post author:
  • Post category:vue


现在这个项目用的是umi4+vue3,之前一直用是的umi+react,所以想换下vue来开发,这个项目算是第一次使用vue,因为用umi习惯了,所以还是用它,加上umi4也支持vue了,umi4的配置有点不一样了,所以与vue3一起都是摸索着开发。

我放了一个umi+vue的

demo

在github上,大家可以看看。

下面还是开始讲我是怎么添加iconfont上的图标的。

首先,打开在iconfont上的我的项目,这个大家应该都知道,我就不多说了,然后点击Font class,复制下面的css路径,如下图所示:

第二步,在vue项目的根目录下有个plugin.ts文件,没有可以新建一个,我是把网站的favicon.ico引入放在这里了,其实也可以放在umi的配置里的favicons属性中,我以前是放在document.ejs中的,但是umi4已经没有这个文件了,我的plugin.ts是这样的:

/*
 * @Description: 
 * @Author: wangzhicheng
 * @Date: 2022-08-25 09:38:31
 */
import { IApi } from 'umi';

const iconfontUrl = '//at.alicdn.com/t/font_2249139_kupo2k97hkf.css' // Font class

export default (api: IApi) => {
    api.modifyHTML(($) => {
        return $;
    });
    api.addHTMLLinks(() => [{ rel: 'icon', href: `${api.config.publicPath}favicon.ico`, type: 'image/x-icon' }]);
    api.addHTMLLinks(() => [{ rel: 'stylesheet', href: iconfontUrl, type: 'text/css' }]);
};

好了,路径已经引入了,但是还需要加一个样式:

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

最后就是在template中引入了,如:

<i class="iconwenjianjia"></i>

页面上应该有显示的图标了,当然也可以不用Font class引入,直接下载到本地,应该也是可以的,我就没有去试了,欢迎大家去尝试。



版权声明:本文为wangzhicheng0304原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。