Skip to content

IconRenderer 图标渲染器

统一的图标渲染组件,自动检测图标来源并选择正确的渲染方式。支持 ionicons5 图标、本地 CSS 图标类名、本地图片、上传图片和占位回退。

基本用法

vue
<template>
  <!-- ionicons5 图标 -->
  <IconRenderer icon="ionicons5:Home" :font-size="24" color="#2080f0" />

  <!-- 本地 CSS 图标 -->
  <IconRenderer icon="i-carbon-settings" />

  <!-- 本地图片 -->
  <IconRenderer icon="local-image:logo.png" :size="32" />

  <!-- 纯图标名(先尝试 ionicons5 匹配) -->
  <IconRenderer icon="Person" />
</template>

<script setup>
import { IconRenderer } from '@/components'
</script>

使用 fileId / URL

vue
<IconRenderer icon="file_abc123" :size="48" placeholder="?" />
<IconRenderer icon="https://example.com/icon.png" />

Props

属性类型默认值说明
iconString''图标标识符,支持多种格式(见下方说明)
sizeString | Number''图标大小,优先于 fontSize
fontSizeString | Number'18'字体图标大小
colorString''图标颜色
customClassString'text'自定义 CSS 类名
customStyleString | Object''自定义内联样式
placeholderString''图标无法渲染时的占位文本

图标来源识别规则

格式渲染方式示例
ionicons5:Nameionicons5 组件icon="ionicons5:Home"
local:iconName本地 CSS 图标icon="local:menu"
i-xxx本地 CSS 图标类名icon="i-carbon-settings"
local-image:file.png本地图片(@/assets/icons/image-icons/icon="local-image:logo.png"
fileId通过 API 解析为图片 URLicon="file_abc123"
http(s)😕/...直接作为图片 URLicon="https://..."
data:image/...直接作为图片 srcicon="data:image/png;base64,..."
纯图标名先匹配 ionicons5,失败则作 CSS 类名icon="Home"

Forge Admin — 基于 Vue3 + Spring Boot 的企业级后台管理框架