bookworm-smart-assistant/skills/miniprogram-expert/SKILL.md

141 lines
3.4 KiB
Markdown
Raw Permalink Normal View History

---
name: miniprogram-expert
description: >
小程序开发专家。当用户需要微信小程序、支付宝小程序、抖音小程序开发,
Taro、uni-app 跨端框架云开发、云函数、分包优化、setData 优化、
登录授权、支付功能、审核上架,或说 "小程序"、"Taro" 时使用此技能。
allowed-tools: Read, Glob, Grep, Edit, Write, Bash
maturity: stable
last-reviewed: 2026-02-18
---
# 小程序开发专家 (Mini Program Expert)
> **Output Style**: 本技能使用内联输出规范
专注于微信/支付宝/抖音等平台小程序开发,以及 Taro、uni-app 跨端开发。
## 触发关键词
- **平台**: `微信小程序`, `支付宝小程序`, `抖音小程序`, `百度小程序`
- **框架**: `Taro`, `uni-app`, `Remax`
- **功能**: `云开发`, `小程序登录`, `小程序支付`, `分享`
- **优化**: `分包`, `性能优化`, `启动优化`
## 核心能力
- **原生开发**: 微信、支付宝、抖音、百度小程序
- **跨端框架**: Taro 3.x、uni-app
- **云开发**: 云函数、云数据库、云存储
- **性能优化**: 启动、渲染、包体积优化
- **核心功能**: 登录授权、支付、分享
## 项目结构
### 微信小程序
```
miniprogram/
├── app.js / app.json / app.wxss
├── pages/
│ └── index/
│ ├── index.js / index.json
│ ├── index.wxml / index.wxss
├── components/
├── utils/
│ ├── request.js
│ └── auth.js
├── services/
└── packageA/ # 分包
```
### Taro 项目
```
src/
├── app.tsx / app.config.ts
├── pages/
│ └── index/
│ ├── index.tsx
│ └── index.config.ts
├── components/
├── hooks/
├── store/
└── services/
```
## 页面模板
```javascript
Page({
data: { list: [], loading: false },
onLoad(options) { this.init(options) },
onShow() { },
onPullDownRefresh() {
this.loadData().then(() => wx.stopPullDownRefresh())
},
onReachBottom() { this.loadMore() },
onShareAppMessage() {
return { title: '分享', path: '/pages/index/index' }
},
async init(options) {
this.setData({ loading: true })
try {
const data = await this.fetchData()
this.setData({ list: data })
} finally {
this.setData({ loading: false })
}
}
})
```
## setData 优化
```javascript
// ❌ 全量更新
this.setData({ list: this.data.list })
// ✅ 路径更新
this.setData({
'list[0].name': '新名称',
[`list[${i}].done`]: true
})
// ✅ 合并更新
const updates = {}
items.forEach((item, i) => { updates[`list[${i}].checked`] = true })
this.setData(updates)
```
## 性能优化清单
**启动优化**
- 主包 < 2MB分包加载
- `"lazyCodeLoading": "requiredComponents"`
- 骨架屏
**渲染优化**
- 减少 setData 频率和数据量
- 长列表用虚拟列表
- 图片懒加载
## 参考文档
详细API和代码请查阅:
- `references/wx-api.md` - 微信小程序API速查
- `references/taro-guide.md` - Taro跨端开发指南
- `references/cloud-dev.md` - 云开发完整指南
- `references/optimization.md` - 性能优化详解
- `scripts/request.js` - 请求封装模板
- `scripts/auth.js` - 登录授权模板
## 输出规范
- 中文回复,注释中文
- 代码完整可运行
- 说明平台兼容性差异
- 提供性能优化建议
- 避免废弃API
- 不在setData传大量数据