File contents 1 --- 2 name: uniapp 3 description: 移动端uniapp开发说明 4 --- 5 6 # uniapp 说明 7 8 ## 0. 自动触发说明 9 10 ### 0.1 触发条件 11 12 #### 0.1.1 操作触发 13 - **文件浏览时**: 当浏览 uniapp 相关目录时自动调用 14 - 打开 uniapp 项目根目录时触发 15 - 打开 pages 目录时触发 16 - 浏览 components 目录时触发 17 - 查看 uniapp 配置文件时触发 18 - **文件操作时**: 当对 uniapp 文件进行操作时自动调用 19 - 创建新页面文件时触发 20 - 修改组件文件时触发 21 - 删除 uniapp 文件时触发 22 - 修改配置文件时触发 23 - **目录操作时**: 当对 uniapp 目录进行操作时自动调用 24 - 创建新页面目录时触发 25 - 重命名组件目录时触发 26 - 删除 uniapp 目录时触发 27 28 #### 0.1.2 内容触发 29 - **关键词触发**: 当文件内容包含以下关键词时自动调用 30 - 移动端关键词: `移动端`、`app`、`手机`、`小程序`、`H5` 31 - uniapp 关键词: `uniapp`、`uni-app`、`uView`、`uniCloud` 32 - 功能关键词: `登录`、`注册`、`首页`、`商品`、`购物车`、`订单` 33 - **代码触发**: 当查看特定类型 uniapp 代码时自动调用 34 - 页面代码 (`*.vue`) 35 - 组件代码 (`components`) 36 - 配置代码 (`pages.json`、`manifest.json`) 37 - API 调用代码 (`uni.` 开头的 API) 38 39 #### 0.1.3 命令触发 40 - **终端命令触发**: 当执行以下命令时自动调用 41 - `npm run dev:h5` (启动 H5 开发) 42 - `npm run dev:mp-weixin` (启动微信小程序开发) 43 - `npm run build:h5` (构建 H5) 44 - `npm run build:mp-weixin` (构建微信小程序) 45 - `uni` 相关命令 46 47 ### 0.2 适用场景 48 49 #### 0.2.1 核心场景 50 - **移动端开发**: 开发 uniapp 移动应用时 51 - **页面开发**: 创建或修改 uniapp 页面时 52 - **组件开发**: 开发可复用的 uniapp 组件时 53 - **功能集成**: 集成新功能到移动端应用时 54 55 #### 0.2.2 辅助场景 56 - **跨端调试**: 调试不同平台的兼容性问题时 57 - **性能优化**: 优化移动端应用性能时 58 - **样式调整**: 调整移动端界面样式时 59 - **API 调用**: 使用 uniapp 原生 API 时 60 61 ### 0.3 触发机制 62 63 #### 0.3.1 调用时机 64 - **实时触发**: 页面文件操作时立即触发 65 - **延迟触发**: 复杂配置修改时延迟1秒触发 66 - **批量触发**: 批量文件操作时合并触发 67 68 #### 0.3.2 调用频率 69 - 文件浏览: 最多每10秒触发一次 70 - 文件操作: 最多每5秒触发一次 71 - 命令执行: 最多每3秒触发一次 72 73 #### 0.3.3 调用优先级 74 - **优先级等级**: 中优先级 (3/5) 75 - **竞争处理**: 当多个技能同时触发时 76 - 最高优先级: 系统核心技能 77 - 高优先级: 代码结构技能 78 - 中等优先级: uniapp 技能、管理端前端技能 79 - 低优先级: 辅助工具技能 80 - **触发限制**: 仅在 uniapp 相关操作时被触发,不影响其他技能的正常使用 81 82 ### 0.4 触发后行为 83 84 #### 0.4.1 自动分析 85 - **结构分析**: 分析 uniapp 项目目录结构 86 - **组件分析**: 分析页面组件依赖关系 87 - **配置分析**: 分析 uniapp 配置文件 88 - **性能分析**: 分析移动端性能瓶颈 89 90 #### 0.4.2 自动展示 91 - **目录结构**: 展示 uniapp 项目目录结构 92 - **页面说明**: 展示核心页面功能说明 93 - **技术栈**: 展示 uniapp 技术栈 94 - **开发规范**: 展示移动端开发规范 95 96 #### 0.4.3 自动建议 97 - **开发建议**: 提供 uniapp 开发建议 98 - **优化建议**: 提供移动端性能优化建议 99 - **规范建议**: 提供代码规范遵循建议 100 - **跨端建议**: 提供跨端兼容性建议 101 102 ## 1. uniapp 架构介绍 103 104 ### 1.1 整体架构 105 - **跨端框架**: 基于 Vue 2.x 的跨端应用框架 106 - **多端发布**: 支持 H5、小程序、App 等多端发布 107 - **组件化开发**: 基于 Vue 组件化开发模式 108 - **原生能力**: 调用各平台原生 API 能力 109 - **状态管理**: Vuex 或 Pinia 状态管理 110 111 ### 1.2 技术栈 112 - **核心框架**: Vue 2.x / Vue 3.x 113 - **UI 组件库**: uView UI、ColorUI、uni-ui 114 - **状态管理**: Vuex 3.x / Pinia 115 - **HTTP 客户端**: uni.request、axios 116 - **构建工具**: Webpack、Vite 117 - **包管理器**: npm/yarn 118 - **代码规范**: ESLint + Prettier 119 120 ### 1.3 目录结构 121 122 #### 1.3.1 核心目录 123 ``` 124 uniapp/ 125 ├── pages/ # 页面目录 126 ├── components/ # 组件目录 127 ├── static/ # 静态资源目录 128 ├── utils/ # 工具函数目录 129 ├── api/ # API 接口目录 130 ├── store/ # 状态管理目录 131 ├── common/ # 公共目录 132 ├── mixins/ # 混合器目录 133 ├── pages.json # 页面路由配置 134 ├── manifest.json # 应用配置 135 ├── main.js # 入口文件 136 ├── App.vue # 根组件 137 └── uni.scss # 全局样式 138 ``` 139 140 #### 1.3.2 页面目录 141 ``` 142 pages/ 143 ├── index/ # 首页 144 ├── goods/ # 商品 145 ├── cart/ # 购物车 146 ├── order/ # 订单 147 ├── user/ # 用户中心 148 ├── login/ # 登录 149 └── detail/ # 详情页 150 ``` 151 152 ## 2. 核心功能模块 153 154 ### 2.1 登录认证模块 155 - **功能**: 用户登录、注册、密码找回、第三方登录 156 - **关键页面**: `login.vue`、`register.vue` 157 - **核心功能**: 158 - 手机号密码登录 159 - 验证码登录 160 - 微信登录 161 - 注册功能 162 - 密码找回 163 - 登录状态管理 164 165 ### 2.2 首页模块 166 - **功能**: 应用入口、轮播图、推荐商品、分类入口 167 - **关键页面**: `index.vue` 168 - **核心功能**: 169 - 轮播图展示 170 - 分类导航 171 - 推荐商品 172 - 活动入口 173 - 搜索功能 174 - 快捷入口 175 176 ### 2.3 商品模块 177 - **功能**: 商品列表、商品搜索、商品筛选、商品详情 178 - **关键页面**: `goods/list.vue`、`goods/detail.vue` 179 - **核心功能**: 180 - 商品列表展示 181 - 商品搜索 182 - 商品筛选 183 - 商品详情 184 - 商品评价 185 - 商品分享 186 187 ### 2.4 购物车模块 188 - **功能**: 商品管理、数量调整、价格计算、结算 189 - **关键页面**: `cart/index.vue` 190 - **核心功能**: 191 - 商品添加/删除 192 - 数量调整 193 - 价格计算 194 - 商品结算 195 - 购物车清空 196 - 选择商品 197 198 ### 2.5 订单模块 199 - **功能**: 订单创建、订单列表、订单详情、订单支付 200 - **关键页面**: `order/create.vue`、`order/list.vue`、`order/detail.vue` 201 - **核心功能**: 202 - 订单创建 203 - 订单列表 204 - 订单详情 205 - 订单支付 206 - 订单取消 207 - 订单退款 208 209 ### 2.6 用户中心模块 210 - **功能**: 用户信息、收货地址、优惠券、收藏、历史记录 211 - **关键页面**: `user/index.vue`、`user/info.vue` 212 - **核心功能**: 213 - 用户信息管理 214 - 收货地址管理 215 - 优惠券管理 216 - 商品收藏 217 - 浏览历史 218 - 个人设置 219 220 ## 3. 技术特点 221 222 ### 3.1 跨端开发 223 - **一次开发多端发布**: 支持 H5、小程序、App 等多端 224 - **条件编译**: 根据不同平台编写特定代码 225 - **平台差异处理**: 处理各平台 API 差异 226 - **原生能力调用**: 调用各平台原生能力 227 228 ### 3.2 组件化开发 229 - **页面组件**: 页面级组件开发 230 - **通用组件**: 可复用的通用组件 231 - **业务组件**: 特定业务逻辑组件 232 - **组件通信**: Props/Events、Vuex、EventBus 233 234 ### 3.3 状态管理 235 - **Vuex 模块化**: 按功能模块划分 store 236 - **状态持久化**: 使用 localStorage/sessionStorage 237 - **异步操作**: 使用 Actions 处理异步请求 238 - **getters**: 派生状态计算 239 240 ### 3.4 API 调用 241 - **uni.request**: uniapp 内置请求方法 242 - **请求封装**: 统一 API 调用方式 243 - **拦截器**: 请求/响应拦截器 244 - **API 模块化**: 按功能模块划分 API 245 246 ## 4. 开发规范 247 248 ### 4.1 代码规范 249 - **Vue 风格指南**: 遵循 Vue 官方风格指南 250 - **ESLint 规则**: 严格遵循 ESLint 规则 251 - **代码缩进**: 4空格缩进 252 - **命名规范**: 253 - 组件名: PascalCase 254 - 方法/变量: camelCase 255 - 常量: 全大写 256 - 文件名: kebab-case 257 258 ### 4.2 目录规范 259 - **页面目录**: 按功能模块组织页面 260 - **组件目录**: 按类型组织组件 261 - **资源目录**: 分类存放静态资源 262 - **工具目录**: 按功能分类工具函数 263 264 ### 4.3 命名规范 265 - **页面命名**: 使用语义化的页面名称 266 - **组件命名**: 与功能模块名称对应 267 - **store 命名**: 与功能模块名称对应 268 - **API 命名**: 与后端接口名称对应 269 270 ### 4.4 注释规范 271 - **页面注释**: 页面功能、参数说明 272 - **组件注释**: 组件功能、props、events 说明 273 - **方法注释**: 方法功能、参数、返回值说明 274 - **复杂逻辑注释**: 关键逻辑步骤说明 275 276 ## 5. 性能优化 277 278 ### 5.1 加载优化 279 - **路由懒加载**: 按需加载页面组件 280 - **组件懒加载**: 按需加载大型组件 281 - **图片优化**: 图片压缩、懒加载、WebP 格式 282 - **资源压缩**: JS/CSS 压缩 283 - **预加载**: 预加载关键资源 284 285 ### 5.2 渲染优化 286 - **虚拟列表**: 长列表使用虚拟滚动 287 - **计算属性缓存**: 使用 computed 缓存计算结果 288 - **避免频繁更新**: 使用 v-once、v-memo 289 - **合理使用 key**: 列表渲染时使用唯一 key 290 - **减少 DOM 操作**: 批量更新 DOM 291 292 ### 5.3 网络优化 293 - **API 请求合并**: 合并相同请求 294 - **请求缓存**: 缓存重复请求结果 295 - **防抖节流**: 优化频繁触发的事件 296 - **WebSocket**: 实时数据使用 WebSocket 297 - **HTTP/2**: 启用 HTTP/2 协议 298 299 ### 5.4 构建优化 300 - **Tree Shaking**: 移除未使用的代码 301 - **代码分割**: 按路由分割代码 302 - **环境变量**: 区分开发/生产环境 303 - **分包加载**: 小程序分包加载 304 305 ## 6. 跨端兼容 306 307 ### 6.1 平台差异 308 - **H5 端**: 浏览器兼容性 309 - **小程序端**: 各平台小程序限制 310 - **App 端**: iOS/Android 差异 311 312 ### 6.2 兼容策略 313 - **条件编译**: 使用 `#ifdef`/`#endif` 处理平台差异 314 - **API 兼容**: 封装统一的 API 调用 315 - **样式兼容**: 处理各平台样式差异 316 - **功能降级**: 不支持的功能提供降级方案 317 318 ### 6.3 测试策略 319 - **多端测试**: 在各平台进行测试 320 - **兼容性测试**: 测试不同版本的兼容性 321 - **性能测试**: 测试各平台性能表现 322 - **用户体验测试**: 测试各平台用户体验 323 324 ## 7. 安全防护 325 326 ### 7.1 数据安全 327 - **敏感数据加密**: 加密存储敏感信息 328 - **本地存储安全**: 合理使用 localStorage 329 - **API 接口安全**: HTTPS、接口签名 330 - **数据验证**: 前端数据验证 331 332 ### 7.2 权限管理 333 - **权限申请**: 合理申请设备权限 334 - **权限提示**: 向用户说明权限用途 335 - **权限降级**: 无权限时提供降级方案 336 337 ### 7.3 防作弊措施 338 - **请求频率限制**: 防止恶意请求 339 - **参数验证**: 验证请求参数 340 - **签名验证**: 验证请求签名 341 - **设备标识**: 合理使用设备标识 342 343 ## 8. 最佳实践 344 345 ### 8.1 开发流程 346 1. **需求分析**: 明确功能需求 347 2. **设计阶段**: 设计页面结构和组件 348 3. **编码实现**: 遵循开发规范编码 349 4. **多端测试**: 在各平台进行测试 350 5. **性能优化**: 优化应用性能 351 6. **发布上线**: 构建和发布 352 353 ### 8.2 页面开发 354 - **布局规范**: 遵循移动端布局规范 355 - **响应式设计**: 适配不同屏幕尺寸 356 - **用户体验**: 优化移动端交互体验 357 - **性能考虑**: 页面加载和渲染性能 358 359 ### 8.3 组件开发 360 - **单一职责**: 组件功能单一 361 - **可配置性**: 组件参数可配置 362 - **跨端兼容**: 考虑各平台兼容性 363 - **性能优化**: 优化组件性能 364 365 ### 8.4 调试技巧 366 - **uni-app 开发工具**: 使用官方开发工具 367 - **真机调试**: 使用真机进行调试 368 - **控制台调试**: 合理使用 console 方法 369 - **网络调试**: 分析 API 请求和响应 370 371 ## 9. 常见问题 372 373 ### 9.1 兼容性问题 374 - **API 兼容性**: 处理各平台 API 差异 375 - **样式兼容性**: 处理各平台样式差异 376 - **功能兼容性**: 处理各平台功能差异 377 378 ### 9.2 性能问题 379 - **启动速度**: 优化应用启动速度 380 - **页面加载**: 优化页面加载速度 381 - **滚动性能**: 优化页面滚动性能 382 - **内存占用**: 优化应用内存占用 383 384 ### 9.3 打包问题 385 - **包体积**: 优化应用包体积 386 - **分包加载**: 合理使用分包加载 387 - **资源文件**: 优化资源文件大小 388 389 ### 9.4 上架问题 390 - **应用商店审核**: 遵循各应用商店审核规则 391 - **小程序审核**: 遵循各小程序平台审核规则 392 - **内容合规**: 确保应用内容合规 393 394 ## 10. 部署与发布 395 396 ### 10.1 构建流程 397 - **H5 构建**: `npm run build:h5` 398 - **微信小程序构建**: `npm run build:mp-weixin` 399 - **App 构建**: 使用 HBuilderX 云打包 400 401 ### 10.2 发布流程 402 - **H5 发布**: 部署到静态文件服务器 403 - **小程序发布**: 提交到各小程序平台 404 - **App 发布**: 提交到应用商店 405 406 ### 10.3 版本管理 407 - **版本号规范**: 遵循语义化版本规范 408 - **发布日志**: 记录版本变更内容 409 - **灰度发布**: 采用灰度发布策略 410 411 ## 11. 开发工具推荐 412 413 ### 11.1 IDE 推荐 414 - **HBuilderX**: uniapp 官方推荐 IDE 415 - **VS Code**: 配合 uniapp 插件使用 416 - **WebStorm**: 专业的前端 IDE 417 418 ### 11.2 插件推荐 419 - **uni-app 插件市场**: 官方插件市场 420 - **uView UI**: 移动端 UI 组件库 421 - **ColorUI**: 移动端 UI 组件库 422 - **uni-ui**: 官方 UI 组件库 423 424 ### 11.3 工具推荐 425 - **Charles**: 网络调试工具 426 - **Postman**: API 测试工具 427 - **Figma/Sketch**: UI 设计工具 428 - **Lighthouse**: 性能分析工具 429 430 ## 12. 参考资源 431 432 ### 12.1 官方文档 433 - [uni-app 官方文档](https://uniapp.dcloud.io/) 434 - [uView UI 文档](https://uviewui.com/) 435 - [Vue 官方文档](https://v2.vuejs.org/) 436 - [微信小程序文档](https://developers.weixin.qq.com/miniprogram/dev/framework/) 437 438 ### 12.2 学习资源 439 - [uni-app 教程](https://uniapp.dcloud.io/tutorial/) 440 - [Vue Mastery](https://www.vuemastery.com/) 441 - [MDN Web Docs](https://developer.mozilla.org/zh-CN/) 442 - [CSS-Tricks](https://css-tricks.com/) 443 444 ### 12.3 社区资源 445 - [uni-app 社区](https://ask.dcloud.net.cn/forum-79-1.html) 446 - [GitHub](https://github.com/) 447 - [Stack Overflow](https://stackoverflow.com/) 448 - [掘金](https://juejin.cn/) 449 450 ### 12.4 本地参考文档 451 - [UniApp 目录结构文档](./references/directory_structure.md) 452 - [UniApp API 开发流程文档](./references/api_flow.md) 453 - [UniApp 代码规范文档](./references/code_style.md) 454 455 ## 13. 团队协作 456 457 ### 13.1 协作流程 458 - **需求评审**: 团队评审需求 459 - **任务分配**: 合理分配开发任务 460 - **代码审查**: 代码质量检查 461 - **多端测试**: 团队成员负责不同平台测试 462 463 ### 13.2 规范约定 464 - **代码规范**: 统一代码风格 465 - **命名规范**: 统一命名规则 466 - **文档规范**: 统一文档格式 467 - **提交规范**: 统一提交信息格式 468 469 ### 13.3 工具协作 470 - **项目管理**: 使用项目管理工具 471 - **代码托管**: 使用代码托管平台 472 - **CI/CD**: 持续集成/持续部署 473 - **文档协作**: 团队文档协作工具
crmeb/crmeb/tree/main/.trae/skills/uniapp commit 2d152bc655
Frequently asked questions How do I install the Uniapp说明 skill? Run npx skillmds@latest add crmeb/uniapp in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the Uniapp说明 skill do? 移动端uniapp开发说明 It is listed under Coding & Dev Tools on SkillMD.
Is Uniapp说明 safe to use? This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with Uniapp说明? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is Uniapp说明 free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published Uniapp说明? crmeb (@crmeb) published this skill. Their other Agent Skills are listed on their SkillMD profile.