# 🦟 蚊子项目 - 增强版Vue 3组件库 这是蚊子项目的Vue 3增强版组件库,提供完整的错误处理、加载状态管理和更好的用户体验。 ## ✨ 新增特性 - 🔒 **错误处理**: 全面的错误处理和用户友好的错误提示 - ⏳ **加载状态**: 自动加载状态管理和骨架屏 - 🔄 **重试机制**: 自动重试和手动重试功能 - 🎨 **主题系统**: 支持明暗主题切换 - 📱 **响应式设计**: 完全响应式布局 - ♿ **无障碍支持**: 支持键盘导航和屏幕阅读器 - 🔧 **TypeScript**: 完整的TypeScript类型定义 ## 📦 安装 ```bash npm install @mosquito/vue-enhanced # 或 yarn add @mosquito/vue-enhanced # 或 pnpm add @mosquito/vue-enhanced ``` ## 🚀 快速开始 ### 1. 安装插件 ```typescript // main.ts import { createApp } from 'vue' import App from './App.vue' import MosquitoEnhancedPlugin from '@mosquito/vue-enhanced' import '@mosquito/vue-enhanced/style.css' const app = createApp(App) // 安装插件并配置 app.use(MosquitoEnhancedPlugin, { baseUrl: 'https://api.your-domain.com', apiKey: 'your-api-key', timeout: 10000, retryCount: 3, enableLogging: true, defaultTheme: 'light', locale: 'zh-CN' }) app.mount('#app') ``` ### 2. 基础使用 ```vue ``` ## 📖 组件文档 ### MosquitoShareButton 增强版的分享按钮组件,支持加载状态、错误处理和多种样式。 #### Props | 属性 | 类型 | 默认值 | 说明 | |------|------|--------|------| | activityId | `number` | - | 活动ID(必需) | | userId | `number` | - | 用户ID(必需) | | template | `string` | 'default' | 分享模板 | | text | `string` | '分享给好友' | 按钮文字 | | disabled | `boolean` | false | 是否禁用 | | variant | `'default'\|'primary'\|'secondary'\|'success'\|'danger' | 'primary' | 按钮样式 | | size | `'sm'\|'md'\|'lg' | 'md' | 按钮大小 | #### 事件 | 事件 | 参数 | 说明 | |------|------|------| | copied | - | 链接已复制到剪贴板 | | error | `Error` | 获取分享链接失败 | #### 示例 ```vue ``` ### MosquitoPosterCard 增强版的海报展示组件,支持加载状态、错误处理和重试机制。 #### Props | 属性 | 类型 | 默认值 | 说明 | |------|------|--------|------| | activityId | `number` | - | 活动ID(必需) | | userId | `number` | - | 用户ID(必需) | | template | `string` | 'default' | 海报模板 | | width | `string` | '300px' | 宽度 | | height | `string` | '400px' | 高度 | #### 事件 | 事件 | 参数 | 说明 | |------|------|------| | click | - | 海报被点击 | | error | `Error` | 海报加载失败 | | loaded | - | 海报加载成功 | #### 示例 ```vue ``` ### MosquitoLeaderboard 增强版的排行榜组件,支持分页、错误处理、高亮当前用户等功能。 #### Props | 属性 | 类型 | 默认值 | 说明 | |------|------|--------|------| | activityId | `number` | - | 活动ID(必需) | | page | `number` | 0 | 页码 | | size | `number` | 20 | 每页大小 | | topN | `number` | 10 | 显示前N名 | | currentUserId | `number` | undefined | 当前用户ID | #### 事件 | 事件 | 参数 | 说明 | |------|------|------| | loaded | `entries[]` | 排行榜数据加载完成 | | error | `Error` | 排行榜加载失败 | #### 示例 ```vue ``` ## 🔧 高级用法 ### 错误处理 ```vue ``` ### 加载状态管理 ```vue ``` ### 主题配置 ```typescript // main.ts import MosquitoEnhancedPlugin from '@mosquito/vue-enhanced' app.use(MosquitoEnhancedPlugin, { // ...其他配置 defaultTheme: 'dark', // 或 'light' locale: 'en-US' // 或 'zh-CN' }) ``` ## 🧪 测试 ```bash # 运行单元测试 npm run test # 运行端到端测试 npm run test:e2e # 运行类型检查 npm run type-check ``` ## 📄 许可证 MIT License ## 🤝 贡献 欢迎提交Issue和Pull Request! 1. Fork本项目 2. 创建功能分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 创建Pull Request ## 📞 支持 如果您在使用过程中遇到问题,请: 1. 查看文档和FAQ 2. 提交GitHub Issue 3. 联系我们的技术支持团队