Appearance
图片 URL 图标
使用自定义图片 URL 作为图标,支持品牌标识、自定义图标等场景。
🚀 基本使用
vue
<script setup>
import { QxsIcon } from '@qxs-bns/components'
</script>
<template>
<!-- 在线图片 -->
<QxsIcon
icon="https://api.iconify.design/ep:home.svg"
:size="24"
/>
<!-- 本地图片 -->
<QxsIcon
icon="/logo.svg"
:size="32"
color="#409eff"
/>
<!-- 带错误处理 -->
<QxsIcon
icon="https://example.com/icon.png"
:size="24"
fallback="i-ep:picture"
loading="i-ep:loading"
/>
</template>
🛡️ 错误处理
加载状态和错误回退
vue
<template>
<QxsIcon
icon="https://slow-server.com/icon.svg"
:size="24"
loading="i-ep:loading"
fallback="i-ep:picture"
@load="onImageLoad"
@error="onImageError"
/>
</template>
<script setup>
function onImageLoad() {
console.log('图片加载成功')
}
function onImageError() {
console.log('图片加载失败,显示回退图标')
}
</script>
🎨 支持的图片格式
- SVG:矢量图形,支持颜色修改
- PNG:透明背景图片
- JPG/JPEG:普通图片
- WebP:现代图片格式
- GIF:动画图片(不推荐用作图标)
🎯 使用场景
1. 品牌标识
vue
<template>
<!-- 公司 Logo -->
<QxsIcon
icon="/assets/company-logo.svg"
:size="32"
/>
<!-- 第三方服务图标 -->
<QxsIcon
icon="https://github.com/favicon.ico"
:size="16"
/>
</template>
2. 自定义图标
vue
<template>
<!-- 自定义设计的图标 -->
<QxsIcon
icon="/assets/custom-icons/special-feature.svg"
:size="24"
color="#ff6b6b"
/>
</template>
3. 动态图标
vue
<template>
<QxsIcon
:icon="userAvatar || '/default-avatar.png'"
:size="40"
fallback="i-ep:user"
/>
</template>
<script setup>
import { ref } from 'vue'
const userAvatar = ref('https://api.example.com/user/123/avatar')
</script>
⚠️ 注意事项
性能考虑
- 缓存策略:确保图片服务器设置了合适的缓存头
- 图片大小:控制图片文件大小,避免影响加载性能
- CDN 使用:使用 CDN 加速图片加载
安全考虑
- CORS 策略:确保跨域图片可以正常加载
- HTTPS:在 HTTPS 站点中使用 HTTPS 图片链接
- 内容验证:验证图片来源的可信度
兼容性
- 回退方案:始终提供
fallback
图标 - 加载状态:使用
loading
图标提升用户体验
🔧 高级功能
关于 QxsIcon 组件的更多功能(旋转、翻转、事件等),请参考:
💡 最佳实践
- 使用 SVG:优先使用 SVG 格式,支持颜色修改和缩放
- 设置回退:总是设置
fallback
图标 - 优化性能:使用适当的图片大小和格式
- 错误处理:监听加载事件,提供用户反馈