react引入iconfont的svg图标

react引入iconfont的svg图标

本文目录

    • react引入iconfont的svg图标
      • 普通图标
        • 通过link引入css
        • 组件内引入css
        • 使用
      • svg图标
        • 通过script引入js
        • 组件内引入js
        • 使用
      • 通过封装组件
        • 自定义封装
        • 组件中调用
      • 通过antd
        • 封装
        • 使用

普通图标

通过link引入css
<link rel="stylesheet" href="/src/assets/iconfont/iconfont.css">
组件内引入css
import "@/assets/iconfont/iconfont.css";
使用
<i className="iconfont icon-zhuye"></i>

svg图标

通过script引入js

index.html引入js文件

<html lang="en"><head>...</head><body><div id="root"></div><script type="module" src="/src/main.tsx"></script><script src="/src/assets/iconfont/iconfont.js"></script></body>
组件内引入js
import "@/assets/iconfont/iconfont.js"
使用
import "./about.css";<svg className="icon" aria-hidden="true"><use xlinkHref="#icon-zhuye1"></use>
</svg>
/* about.css */
.icon {width: 1em;height: 1em;vertical-align: -0.15em;fill: currentColor;overflow: hidden;
}

通过封装组件

自定义封装
import React from 'react';
import "@/assets/iconfont/iconfont.js"
import './about.css';// 定义Props接口
interface SvgIconProps {icon: string; // 必须的属性color?: string; // 可选属性size?: string | number; // 可以是字符串或数字className?: string; // 可选字符串style?: React.CSSProperties; // React内置的CSSProperties类型用于样式对象svgClass?: string; // 用于额外的SVG CSS类
}class SvgIcon extends React.Component<SvgIconProps> {static defaultProps: Partial<SvgIconProps> = {size: '2.67em', // 默认大小svgClass: 'svg-icon' // 默认SVG类名}render() {const { svgClass, className, style, color, size, icon } = this.props;const iconSize = typeof size === 'number' ? `${size}em` : size;const iconName = `#icon-${icon}`; // 构建用于<use>标签的href属性值return (<svg className={`${svgClass} ${className || 'icon'}`}style={{ fill: color, width: iconSize, height: iconSize, ...style }}aria-hidden="true"><use href={iconName}></use></svg>);}
}export default SvgIcon;
组件中调用
import SvgIcon from './SvgIcon';<SvgIcon icon="zhuye" size="24px" />

通过antd

封装

需要把iconfont放在public目录下,通过antd的createFromIconfontCNscriptUrl本质是通过网络资源get获取

import { createFromIconfontCN } from '@ant-design/icons';
// import { icon } from '@/assets/iconfont/iconfont.js'const IconFont = createFromIconfontCN({scriptUrl: '/public/iconfont/iconfont.js'
});export default IconFont;
使用
import IconFont from './IconFont';<IconFont type="icon-zhuye" style={{ fontSize: '24px' }} />

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/644013.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无门槛做数据可视化,真的假的?

做数据可视化确实没有太高的门槛&#xff0c;不管是企业还是个人都能找到适合自己的BI数据可视化工具&#xff0c;通过点击、拖拉的操作实现自主分析、智能分析、数据可视化&#xff0c;还可实现大屏可视化、移动端数据可视化分析&#xff0c;实现实施监控数据、日常运营决策、…

验证 python解释器是否安装成功

一. 简介 前一篇文章学习了下载并安装 python解释器&#xff0c;文章如下&#xff1a; windows系统下python解释器安装-CSDN博客 本文验证 python解释器是否安装成功。 二. 验证 python解释器是否安装成功 1. 首先&#xff0c;打开 Windows系统的 "cmd" 界面。…

2024商业地产五一劳动节健康大会朋克养生市集活动策划方案

2024商业地产五一劳动节健康大会朋克养生市集&#xff08;带薪健康 快乐打工主题&#xff09;活动策划方案 活动策划信息&#xff1a; 方案页码&#xff1a;53页 文件格式&#xff1a;PPT 方案简介&#xff1a; 打工不养生 赚钱养医生 期待已久的五一假期&#xff0c; …

wandb注册 wandb: ERROR api_key

wandb: ERROR api_key not configured (no-tty). call wandb.login(key[your_api_key]) Traceback (most recent call last): 背景 使用yolov8训练时 在pycharm中出现wandb账号未注册错误 Transferred 355/355 items from pretrained weights TensorBoard: Start with tensor…

Day13-Java进阶-IO字节流字符流及其练习题

1. IO流介绍 2. IO 流体系结构 字节流读取纯文本文件会出现乱码问题 2.1 FileOutputStream 字节输出流 package com.itheima.stream.output;import java.io.FileOutputStream; import java.io.IOException;public class FileOutputStreamDemo3 {/*IO流的异常处理方式: jdk7版本…

58岁第一代「晶女郎」激罕现身

90年代性感女神关秀媚在2006年拍完内地剧集《暴雨梨花》后更全面息影&#xff0c;而且更甚少现身于人前。日前曾志伟庆祝71岁生日&#xff0c;举行盛大慈善素宴广邀圈中好友&#xff0c;为寺庙重建工程筹募经费。女神关秀媚便罕有接受访问透露近况。 当天关秀媚将头发盘起&…

windows10开机自动启动 - 添加启动项 - 设置软件自动启动

前言 无需安装额外软件&#xff0c;可手动决定开机自动启动什么软件。 步骤 1&#xff09;开始&#xff0c;运行"shell:startup"&#xff0c;即可打开自启动目录 shell:startup 2&#xff09;将软件的快捷方式 扔进去&#xff0c;ok&#xff01; 3&#xff09;重启…

Unity射击游戏开发教程:(5)使用 GetComponent 在 Unity 中进行脚本通信

我认为脚本通信是刚开始使用 Unity 时较难掌握的概念之一,我将继续讨论这个概念。在本文中,我将介绍如何在游戏对象发生碰撞时使用 GetComponent 来访问另一个脚本。 在这个游戏场景中,我有两个游戏对象,它们都有自己的脚本,需要进行通信。我们有玩家脚本和敌人脚本。Enem…

使用 Dify 和 Moonshot API 构建你的 AI 工作流(一):让不 AI 的应用 AI 化

有了之前的文章铺垫&#xff0c;这篇文章开始&#xff0c;我们聊聊如何折腾 AI 工作流&#xff0c;把不 AI 的应用&#xff0c;“AI 起来”。 写在前面 上个月&#xff0c;我们聊过了《使用 Dify 和 AWS Bedrock 玩转 Anthropic Claude 3》&#xff0c;里面介绍了如何使用交互…

李飞飞团队《2024 年人工智能指数报告》AI十大趋势:中国AI专利数全球第一

《2024 年人工智能指数报告》 当地时间4月15日&#xff0c;斯坦福大学“以人为本”人工智能研究院&#xff08;Human Centered Artificial Intelligence&#xff0c;简称HAI&#xff09;发布了第七个年度AI Index报告&#xff0c;这是关于AI行业现状的最全面的报告之一。 报告…

MyBatis源码之前言—JDBC编码存在的问题和Mybatis的介绍

MyBatis源码之前言—JDBC编码存在的问题和Mybatis的介绍 为了方便操作&#xff0c;我们在sjdwz_test数据库下建立一张表&#xff1a; CREATE TABLE t_student (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键,name varchar(255) DEFAULT NULL COMMENT 名字,age int(255…

Science Robotics 美国斯坦福大学研制了外行星洞穴探测机器人

月球和火星上的悬崖、洞穴和熔岩管已被确定为具有地质和天体生物学研究理想地点。由于其隔绝特性&#xff0c;这些洞穴提供了相对稳定的条件&#xff0c;可以促进矿物质沉淀和微生物生长。在火星上&#xff0c;这些古老的地下环境与火星表面可能适合居住时几乎没有变化&#xf…