从零开始搭建React+TypeScript+webpack开发环境-使用iconfont构建图标库

创建iconfont项目

进入iconfont官网,完成注册流程,即可创建项目。

无法访问iconfont可尝试将电脑dns改为阿里云镜像223.5.5.5和223.6.6.6

添加图标

在图标库里选择图标,加入购物车

将图标添加到之前创建的项目中

生成代码

将代码配置到项目里

复制代码

配置到webpack里

在网页模板里引用

开发图标组件

在components文件夹下创建Icon组件

ts 复制代码
import React, { DetailedHTMLProps, HTMLAttributes } from 'react';

interface IconProps
  extends DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement> {
  type: string;
}

const Icon: React.FC<IconProps> = ({ type, className, ...rest }) => (
  <i className={className} {...rest}>
    <svg className="zhique-icon" aria-hidden="true">
      <use xlinkHref={`#zhique-icon-${type}`} />
    </svg>
  </i>
);

export default Icon;

在global.less里添加样式

less 复制代码
.zhique-icon {
    width: 1em; height: 1em;
    vertical-align: -0.15em;
    fill: currentcolor;
    overflow: hidden;
  }

使用组件

ts 复制代码
import React from 'react';

import { Icon } from '@/components';

export default () => (
  <div>
    <Icon type="compass" />
  </div>
);
相关推荐
liangshanbo12158 小时前
Webpack 常见 Plugin 面试题
前端·webpack·node.js
liangshanbo12159 小时前
Webpack Tree Shaking 面试题整理
前端·webpack·node.js
ss27310 小时前
AI全栈实战 | 2.2-02 React 思维模型:数据不可变 vs Vue 数据可变,两种哲学把复杂度推给谁
前端·vue.js·react.js
陪我一起学编程11 小时前
vue3笔记
前端·webpack·vue3·vite·脚手架·vue3笔记·组件式
liangshanbo121512 小时前
Webpack的分包策略面试题
前端·webpack·node.js
FYKJ_20101 天前
SSM校园失物招领系统41452-计算机课程设计、毕业设计
java·vue.js·spring boot·python·mysql·typescript·spark
500841 天前
React Native for OpenHarmony 实战:三方库 react-native-device-name 的鸿蒙化适配指南
深度学习·react native·react.js·机器学习·harmonyos
500842 天前
React Native for OpenHarmony 实战:三方库 react-native-torch 的鸿蒙化适配指南
javascript·react native·react.js·harmonyos
500842 天前
React Native for OpenHarmony 实战:三方库 react-native-device-uptime 的鸿蒙化适配指南
javascript·分布式·react native·react.js·harmonyos