Skip to main content

Svg

Svg 是一个通用的 SVG 图标组件,基于 use 标签渲染外部或内联 SVG 图标,支持颜色、大小、点击事件等配置,适用于图标统一管理和按需使用的场景。


📦 引入方式

import { Svg } from '@npmqg/react-ui-core';

🧩 使用示例

📚 基础使用

main.js (入口文件内需引入) import '@/assets'

<Svg name="edit" />

📚 自定义颜色和大小

<Svg name="delete" color="red" size={20} />

📚 绑定点击事件

<Svg name="settings" onClick={() => console.log('图标点击')} />

🧩 Props

属性名类型默认值说明
namestring''图标名称,对应 SVG Symbol 的 ID(不包含 #icon- 前缀)
colorstring'var(--font-3-color)'图标颜色,可传入任何合法 CSS 颜色值
sizenumber16图标尺寸(同时控制 fontSize、minWidth、minHeight)
widthnumber16图标最小宽度(如不设置 size 时生效)
heightnumber16图标最小高度(如不设置 size 时生效)
classNamestring''自定义样式类名
onClick() => void() => void 0图标点击事件处理函数

🧾 类型定义(简化)

interface ISvgProps {
name?: string;
color?: string;
size?: number;
width?: number;
height?: number;
className?: string;
onClick?: () => void;
}

📌 使用注意事项

  • 项目中需引入 SVG Sprite,例如通过 vite-plugin-svg-icons 或 Webpack 的 svg-sprite-loader 生成 <symbol>
  • xlinkHref 会拼接为 #icon-${name},请确保 SVG ID 命名遵循该规则。
  • 推荐通过 CSS 变量管理颜色,如 --font-3-color,以统一风格。