# FontAwesome 图标迁移指南
## 迁移步骤
### 1. 在组件中使用 FontAwesomeIcon
```vue
```
```vue
```
### 2. 自动映射工具
使用 `getFontAwesomeIcon` 函数自动映射图标名:
```typescript
import { getFontAwesomeIcon } from '@/utils/icon-mapping';
// 将 Element Plus 图标名转换为 FontAwesome 图标名
const faIcon = getFontAwesomeIcon('Check'); // 返回 'check'
const faIcon2 = getFontAwesomeIcon('ArrowLeft'); // 返回 'arrow-left'
```
### 3. Props 说明
| Prop | 类型 | 可选值 | 说明 |
|------|------|--------|------|
| icon | string | 任意 FontAwesome 图标名 | 图标名称(不含 fa- 前缀) |
| size | string | xs, sm, lg, xl, 2x, 3x, 4x, 5x | 图标大小 |
| spin | boolean | true/false | 是否旋转 |
| pulse | boolean | true/false | 是否脉冲动画 |
| rotation | number | 0, 90, 180, 270 | 旋转角度 |
### 4. 常用图标对照表
| Element Plus | FontAwesome |
|--------------|-------------|
| Check | check |
| Close | xmark |
| Delete | trash |
| Edit | pen-to-square |
| Plus | plus |
| Search | magnifying-glass |
| Refresh | rotate-right |
| Loading | spinner |
| Download | download |
| ArrowLeft | arrow-left |
| ArrowRight | arrow-right |
| User | user |
| Setting | gear |
| View | eye |
| Hide | eye-slash |
| Lock | lock |
| Share | share-nodes |
| Heart | heart |
| Star | star |
| Clock | clock |
| Calendar | calendar |
| ChatLineRound | comment |
| Bell | bell |
| Document | file |
| Picture | image |
### 5. 批量迁移示例
```vue
```
## 注意事项
1. **无需手动导入**:FontAwesomeIcon 组件已在 `vite.config.ts` 中配置为自动导入
2. **图标名格式**:使用小写、带连字符的图标名(如 `magnifying-glass`)
3. **完整图标列表**:访问 [FontAwesome 官网](https://fontawesome.com/search?o=r&m=free) 查看所有可用图标
4. **渐进步骤**:可以逐步迁移,Element Plus 图标和 FontAwesome 可以共存
## 优化建议
1. **减少包体积**:迁移后可以移除 `@element-plus/icons-vue` 依赖
2. **统一图标风格**:FontAwesome 图标风格更统一
3. **更好的性能**:FontAwesome 按需加载,不会加载未使用的图标
## 查找图标
- [Solid Icons 搜索](https://fontawesome.com/search?o=r&m=free)
- 图标名格式:`fa-solid fa-icon-name`
- 在代码中使用时只需:`icon="icon-name"`