IconifyIcon 类型
所有 Iconify 库都共享通用的对象结构。它们在 @iconify/types NPM 包中被定义为类型。
有关类型的描述和 TypeScript 的简要说明,请参阅类型文档。
本文介绍了包含单个图标数据的 IconifyIcon 类型。
用法
IconifyIcon 类型中的图标数据通常从 IconifyJSON 图标集中提取。
要在代码中提取图标数据,请使用 Iconify Utils 中的 getIconData() 函数。Iconify Utils 可在任何环境中使用。
要将 SVG 转换为 IconifyIcon,你可以使用 Iconify Tools 中 SVG 实例的 getIcon() 函数。Iconify Tools 是一个用于导入和解析图标的 Node.js 包。在导出之前,请确保清理图标。
结构
IconifyIcon 类型是一个简单的对象。它包含两部分:
- body,string 类型,包含图标内容,必填。
- 可选的 IconifyOptional 属性,包含图标尺寸和基本变换。
基础图标示例:
json
{
"body": "<path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M8 9.5a1.5 1.5 0 1 0 0-3a1.5 1.5 0 0 0 0 3z\"/>"
}主体
主体包含 <svg> 的内容,但不包含 <svg> 标签本身。
不包含 <svg> 标签的原因如下:
- 可以对内容进行操作,例如旋转或翻转图标。当无需解析整个 <svg> 时,这会容易得多。
- 它使组件能够完全控制 <svg> 标签,允许添加/移除自定义属性。
- 便于在各种框架(如 React、Vue、Svelte)中使用,这些框架中 <svg> 元素是使用框架的原生代码创建的,内容则作为其属性进行设置。
可选属性
有多个属性在多种类型中共享。它们在 IconifyOptional 类型中进行了描述。
viewBox 的属性:
- left,number。viewBox 的左侧位置。默认值为 0。
- top,number。viewBox 的顶部位置。默认值为 0。
- width,number。viewBox 的宽度。默认值为 16。
- height,number。viewBox 的高度。默认值为 16。
变换:
- rotate,number。90 度旋转的次数。默认值为 0。
- hFlip,boolean。水平翻转。默认值为 false。
- vFlip,boolean。垂直翻转。默认值为 false。
典型图标数据示例:
json
{
"body": "<path d=\"M7 6v12l10-6z\" fill=\"currentColor\"/>",
"width": 24,
"height": 24
}在你的代码中,你可以从 Iconify Utils 的 defaultIconProps 常量中获取默认值。