# 背景

ant-design 自带的 icon 种类太少,遂找替代方案 iconfont

# 步骤

  • 首先需要创建一个函数组件,使其接受一个名为 name 或者 type 的参数,用来指定当前渲染的 icon 名称。

Iconfont.tsx

import React from 'react';
import './index.less';

interface IconfontProps {
  name: string;
  className?: string;
}

const Iconfont: React.FC<IconfontProps> = ({ name, className = '' }) => {
  return (
    <svg className={`icon ${className}`} aria-hidden="true">
      <use xlinkHref={`#${name}`}></use>
    </svg>
  );
};

export default Iconfont;
<!-- 这其中的样式根据项目调整 -->
.icon {
  width: 22px;
  height: 22px;
  vertical-align: -4px;
  fill: currentColor;
  overflow: hidden;
}
  • Umi.rc中配置在 iconfont 中生成的静态资源地址。
plugins: [
  scripts: [
    {
      src: `//at.alicdn.com/t/font_xxx_jxx.js`,
    }
  ]
]
  • tsx 中使用。
import Iconfont from 'Iconfont'

<Iconfont name="xxx"/>
最后更新: 2/12/2023, 7:42:22 AM