Appearance
1. 为什么选择微信小程序
1.1 小程序的市场优势
- 微信月活超过13亿,小程序入口就在微信首页底部"发现"和顶部"搜一搜"
- 无需下载安装,扫码或搜索即可打开,用户决策成本极低
- 用完即走的体验,天然适合轻量级工具和服务
- 微信生态内打通公众号、视频号、企业微信、微信支付,形成完整闭环
1.2 为什么适合独立开发者
- 开发成本低:原生小程序语法简单,HTML/CSS/JS基础即可上手
- 审核速度快:首次审核通常1-3个工作日,后续更新可缩短至数小时
- 变现路径清晰:微信支付直接接入,订阅制、一次性付费、广告均可支持
- 无需考虑多端适配:iOS和Android共用一套代码,节省一半工作量
1.3 小程序 vs Web App vs Native App
| 维度 | 微信小程序 | Web App | Native App |
|---|---|---|---|
| 开发成本 | 低(一套代码) | 低(一套代码) | 高(iOS+Android两套) |
| 上架周期 | 1-3天 | 即时上线 | 数周至数月 |
| 获客方式 | 微信搜索、扫码、分享 | SEO、链接分享 | 应用商店搜索 |
| 用户体验 | 接近原生 | 依赖浏览器性能 | 最佳 |
| 分发渠道 | 微信生态 | 互联网 | 应用商店 |
| 技术门槛 | 低 | 低 | 中高 |
| AI友好度 | 高(结构简单) | 高 | 低(代码量大) |
1.4 小程序的商业价值
- 私域流量:用户进入小程序后沉淀在微信生态内,可通过公众号、社群持续触达
- 社交传播:小程序卡片在聊天和朋友圈中天然可分享,裂变成本低
- 搜索流量:微信"搜一搜"覆盖商品、服务、资讯等多种场景,SEO效果显著
- 支付闭环:微信支付无缝集成,用户从看到产品到完成付费只需3步
2. 小程序技术架构
2.1 小程序的基本结构
- 页面:小程序的最小展示单元,由WXML(模板)、WXSS(样式)、JS(逻辑)、JSON(配置)四个文件组成
- 组件:可复用的UI块,如按钮、输入框、列表、弹窗等
- API:微信提供的原生能力,包括网络请求、存储、位置、支付、登录等
2.2 前端框架选型
| 框架 | 特点 | AI生成友好度 | 推荐场景 |
|---|---|---|---|
| 原生小程序 | 语法简单,文档完善,微信官方维护 | 高 | 独立开发者、MVP、快速上线 |
| Taro | 跨三端(小程序/H5/App),React/Vue语法 | 中 | 需要同时覆盖多个平台 |
| Uni-app | Vue语法,一套代码多端编译 | 中 | 已有Vue经验,需要多端发布 |
| mpvue | Vue编译为小程序,已停止维护 | 低 | 不推荐 |
2.3 为什么推荐原生小程序
- 代码量最少:一个页面4个文件,结构一目了然
- AI理解力最强:WXML语法接近HTML,AI生成准确率高
- 调试最直接:微信开发者工具内置预览、真机调试、性能分析
- 学习曲线最低:会HTML/CSS/JS就能写小程序,不需要额外学框架
2.4 目录结构说明
miniprogram/
├── app.js # 小程序入口,App()定义全局生命周期
├── app.json # 全局配置:页面路由、窗口样式、底部tabBar
├── app.wxss # 全局样式
├── pages/ # 页面目录
│ ├── index/ # 首页
│ │ ├── index.wxml
│ │ ├── index.wxss
│ │ ├── index.js
│ │ └── index.json
│ ├── detail/ # 详情页
│ │ ├── detail.wxml
│ │ ├── detail.wxss
│ │ ├── detail.js
│ │ └── detail.json
│ └── mine/ # 个人中心
│ ├── mine.wxml
│ ├── mine.wxss
│ ├── mine.js
│ └── mine.json
├── components/ # 自定义组件
├── utils/ # 工具函数
├── images/ # 静态资源
└── sitemap.json # 微信索引配置2.5 小程序配置文件
- app.json:定义页面路由、导航栏样式、底部TabBar、网络超时时间、分包配置
- sitemap.json:配置哪些页面允许被微信索引,影响"搜一搜"流量
- 每个页面独立的JSON文件:可覆盖全局配置,设置页面标题、背景色等
3. AI生成小程序页面
3.1 用自然语言描述小程序页面
- 告诉AI你要做什么类型的小程序(预约、商城、工具、内容等)
- 描述每个页面的核心功能和布局(顶部导航、中间内容区、底部操作栏)
- 说明交互方式(点击跳转、下拉刷新、滑动删除等)
- 给出参考样式(简洁风、卡片式、列表式等)
示例Prompt:
帮我写一个微信小程序的首页,功能是展示课程列表。
顶部是搜索栏,中间是课程卡片列表,每个卡片包含课程封面图、标题、价格。
底部有一个"全部课程"按钮。使用简洁的白色背景,卡片圆角12px,阴影效果。3.2 AI生成首页、列表页、详情页的完整流程
第一步:生成首页结构
- AI生成WXML模板:搜索框 + 轮播图 + 课程列表
- AI生成WXSS样式:Flex布局、卡片样式、响应式适配
- AI生成JS逻辑:页面生命周期、数据绑定、事件处理
第二步:生成列表页
- 分页加载逻辑(onReachBottom触发下一页)
- 筛选和排序功能
- 空状态提示
第三步:生成详情页
- 标题、封面、正文内容
- 底部固定操作栏(购买/预约/收藏)
- 分享功能
3.3 每个页面的代码结构和组件划分
- 页面级组件:整个页面的布局和骨架
- 复用组件:搜索框、卡片、按钮、空状态提示等
- 工具函数:格式化日期、计算价格、校验输入等
- 建议将通用组件抽离到components目录,减少代码重复
3.4 样式和交互的AI生成技巧
- 让AI使用rpx单位(1rpx = 屏幕宽度/750),自动适配不同机型
- 要求AI使用CSS变量定义主题色,方便后续换肤
- 让AI添加loading状态和骨架屏,提升用户体验
- 对于复杂交互(如拖拽、手势),让AI先写出基础版本,再逐步迭代
3.5 常见页面模板
首页模板:
html
<view class="container">
<!-- 搜索栏 -->
<view class="search-bar">
<input placeholder="搜索..." bindinput="onSearch" />
</view>
<!-- 轮播图 -->
<swiper class="banner" indicator-dots autoplay circular>
<swiper-item wx:for="{{banners}}" wx:key="id">
<image src="{{item.url}}" mode="aspectFill" bindtap="onBannerTap" data-id="{{item.id}}" />
</swiper-item>
</swiper>
<!-- 内容区 -->
<view class="content-list">
<block wx:for="{{list}}" wx:key="id">
<navigator url="/pages/detail/detail?id={{item.id}}">
<view class="card">
<image class="card-cover" src="{{item.cover}}" mode="aspectFill" />
<view class="card-info">
<text class="card-title">{{item.title}}</text>
<text class="card-price">¥{{item.price}}</text>
</view>
</view>
</navigator>
</block>
</view>
</view>个人中心模板:
html
<view class="mine-container">
<view class="user-header">
<image class="avatar" src="{{userInfo.avatar}}" />
<text class="nickname">{{userInfo.nickname}}</text>
</view>
<view class="menu-list">
<navigator url="/pages/orders/orders" class="menu-item">
<text>我的订单</text>
<text class="arrow">></text>
</navigator>
<navigator url="/pages/favorites/favorites" class="menu-item">
<text>我的收藏</text>
<text class="arrow">></text>
</navigator>
<view class="menu-item" bindtap="onSettings">
<text>设置</text>
<text class="arrow">></text>
</view>
</view>
</view>4. 秒搭工具:可视化搭建小程序
4.1 微信官方"小程序·云开发"控制台
- 云开发提供免服务器方案:云函数(后端逻辑)、云数据库(数据存储)、云存储(文件托管)全部在微信后台完成
- 控制台可视化操作:创建集合、导入数据、管理用户权限
- 适合没有后端经验的独立开发者,AI生成云函数代码后直接粘贴到控制台
4.2 第三方搭建工具对比
| 工具 | 特点 | 费用 | 适用人群 |
|---|---|---|---|
| 微信云开发 | 官方方案,与小程序深度集成 | 免费额度够用 | 所有开发者 |
| 微盟 | 电商为主,模板丰富 | 按年付费 | 有电商需求的商家 |
| 有赞 | 电商+SaaS,功能全面 | 按年付费 | 有电商需求的商家 |
| 即时设计+小程序插件 | 设计稿直接转代码 | 免费/付费 | 设计师 |
| AI代码生成器 | 自然语言描述生成完整页面 | 按次付费 | 独立开发者 |
4.3 AI + 可视化工具的组合打法
- 先用AI生成核心页面的代码,获得可用的最小版本
- 再用可视化工具调整非核心页面(如关于我们、帮助中心)
- 最后手动微调关键页面的交互细节
- 这种组合方式比纯手工快5倍,比纯可视化灵活10倍
4.4 从代码到可视化的转换
- 微信开发者工具支持将项目导出为云开发模板
- 云开发控制台可以将云函数和云数据库直接绑定到小程序页面
- 利用AI生成数据结构和接口,在控制台中创建对应的云函数
4.5 适合非开发者的方案
- 方案一:完全使用云开发控制台 + AI辅助编写云函数
- 方案二:使用第三方搭建平台的模板,AI帮助定制内容
- 方案三:找自由开发者用AI辅助快速搭建,你负责产品设计和运营
- 无论哪种方案,核心都是让AI承担技术实现,你专注产品本身
5. 接口调用与数据层
5.1 小程序云函数:后端逻辑的AI实现
- 云函数运行在云端Node.js环境,无需自己维护服务器
- 常用场景:用户登录、数据增删改查、支付回调、消息推送
- AI可以自动生成云函数代码,包括参数校验、数据库操作、错误处理
示例云函数(AI生成的登录逻辑):
javascript
// 云函数:login
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV })
const db = cloud.database()
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
const openid = wxContext.OPENID
// 查询用户是否存在
const user = await db.collection('users').where({ openid }).get()
if (user.data.length === 0) {
// 新用户注册
await db.collection('users').add({
data: {
openid,
createTime: new Date(),
nickname: '',
avatar: ''
}
})
}
return { openid, unionid: wxContext.UNIONID }
}5.2 第三方API接入
| API类型 | 常见服务 | 接入方式 | AI作用 |
|---|---|---|---|
| 天气 | 和风天气、OpenWeather | HTTP请求 | 生成请求封装和解析代码 |
| 地图 | 腾讯地图、高德地图 | 小程序原生API | 生成定位、导航、标记点代码 |
| 支付 | 微信支付 | wx.requestPayment | 生成支付流程代码 |
| 短信 | 腾讯云短信 | HTTP请求 | 生成验证码发送和校验逻辑 |
| AI能力 | 文心一言、通义千问 | HTTP请求 | 生成Prompt管理和结果解析代码 |
5.3 数据库操作:云数据库的CRUD
- 创建集合(表):在云开发控制台或云函数中创建
- 插入数据:db.collection('xxx').add({ data: {...} })
- 查询数据:db.collection('xxx').where({...}).get()
- 更新数据:db.collection('xxx').doc(id).update({ data: {...} })
- 删除数据:db.collection('xxx').doc(id).remove()
- AI可以自动生成完整的CRUD代码,包括分页、排序、条件查询
5.4 实时通信:WebSocket在小程序中的应用
- 云开发提供实时数据推送能力(db.realtimeListener),无需自建WebSocket
- 适用场景:在线聊天、实时通知、 collaborative编辑
- AI生成的代码示例:
javascript
// 订阅实时数据
db.collection('messages').where({ roomId }).watch({
onChange: snapshot => {
console.log('收到消息:', snapshot.docs)
},
onError: err => {
console.error('订阅失败:', err)
}
})5.5 数据安全和权限控制
- 云数据库支持读写权限配置:仅创建者可读/可写、仅管理员可写等
- 敏感数据(如手机号)通过wx.getUserProfile或button open-type获取
- 接口签名:云函数内部验证token,防止恶意调用
- AI可以帮助审查权限配置,确保用户数据不被越权访问
6. 审核与备案策略
6.1 小程序审核的流程和时间
提交版本 → 微信审核(1-5个工作日) → 审核通过 → 上架
→ 审核驳回 → 修改后重新提交- 首次审核:通常1-3个工作日,高峰期可能延长至5个工作日
- 后续版本更新:如果未变更类目和功能,审核时间可缩短至数小时
- 加急通道:部分类目可申请加急审核,但需满足特定条件
6.2 常见驳回原因和解决方案
| 驳回原因 | 出现频率 | 解决方案 |
|---|---|---|
| 诱导分享/关注 | 高 | 移除强制分享才能使用的逻辑,分享按钮改为可选 |
| 类目与实际不符 | 高 | 在后台修改类目,补充对应资质 |
| 缺少资质证明 | 中 | 根据类目要求上传营业执照、行业许可证等 |
| 内容违规 | 中 | 移除敏感词、违规图片、不当言论 |
| 未提供测试账号 | 低 | 在后台填写测试账号和密码 |
| 接口未申请权限 | 低 | 在app.json中声明所需权限,并在后台申请 |
6.3 类目选择和资质要求
| 类目 | 是否需要资质 | 资质要求 |
|---|---|---|
| 工具-实用工具 | 否 | 无 |
| 工具-效率办公 | 否 | 无 |
| 餐饮-外卖 | 是 | 食品经营许可证 |
| 医疗-医疗健康 | 是 | 医疗机构执业许可证 |
| 金融-银行 | 是 | 金融牌照 |
| 教育-在线教育 | 是 | 办学许可证 |
| 政务-政务服务 | 是 | 政府机构证明文件 |
- 建议独立开发者优先选择"工具"类,无需额外资质,审核最快
- 如果涉及用户生成内容(UGC),需开通内容安全检测接口
6.4 快速通过审核的技巧
- 提前准备:在开发阶段就确定好类目和资质,避免审核中途补充材料
- 去掉敏感功能:首次提交时,隐藏支付、评论等需要特殊资质的功能,先以展示型小程序过审
- 提供详细测试指引:在审核备注中写明测试账号、操作步骤、预期结果
- 避开敏感词:小程序名称、简介、页面内容中避免出现"第一""最强""独家"等违禁词
- 首次提交简化版:先提交一个功能精简的版本过审,上架后再迭代增加功能
6.5 备案后的维护和更新
- 工信部备案:2023年起所有小程序必须完成ICP备案,通常在提交审核时同步完成
- 定期更新:建议每1-2个月更新一个版本,保持小程序活跃度
- 合规检查:定期检查用户协议、隐私政策是否过期,接口权限是否仍然有效
- 数据备份:云数据库设置自动备份,防止误操作导致数据丢失
- 用户反馈:建立用户反馈渠道,及时修复问题、收集需求
7. 2小时实战案例
7.1 案例:做一个预约咨询小程序
- 产品定位:为独立顾问/咨询师设计的在线预约工具
- 目标用户:自由职业者、健身教练、心理咨询师、语言教师
- 核心功能:展示服务信息、选择时间段、填写预约表单、确认通知
- 商业模式:SaaS订阅(免费版+付费版解锁更多功能)
7.2 0-30分钟:产品定义和页面规划
产品定义:
- 明确核心功能:首页(服务介绍)+ 预约页(选时间+填信息)+ 确认页(预约成功)
- 确定数据字段:姓名、电话、服务类型、预约日期、预约时段、备注
- 画出页面草图(可以用纸笔或Figma)
页面清单:
| 页面 | 功能 | 优先级 |
|---|---|---|
| 首页 | 服务介绍、联系方式、立即预约按钮 | P0 |
| 预约页 | 选择服务类型、日期、时段、填写个人信息 | P0 |
| 确认页 | 显示预约信息、提交按钮 | P0 |
| 我的预约 | 查看历史预约、取消预约 | P1 |
| 个人中心 | 编辑资料、设置通知 | P1 |
7.3 30-90分钟:AI生成页面和逻辑
Step 1 - 生成首页(约15分钟):
- 向AI描述首页需求:服务介绍卡片 + 立即预约按钮
- AI生成WXML/WXSS/JS三个文件
- 调整文案、配色、布局
Step 2 - 生成预约页(约20分钟):
- 向AI描述预约流程:服务类型选择(单选)+ 日期选择(日历)+ 时段选择(网格)+ 表单(姓名/电话/备注)
- AI生成完整表单页面,包含表单验证逻辑
- 处理日期和时段的数据结构
Step 3 - 生成确认页(约10分钟):
- 向AI描述确认页:展示预约摘要 + 提交按钮 + 成功提示
- AI生成页面和跳转逻辑
Step 4 - 生成云函数(约15分钟):
- 向AI描述后端需求:接收预约数据、存入云数据库、发送通知
- AI生成云函数代码
- 在云开发控制台创建云函数并部署
Step 5 - 联调和调试(约10分钟):
- 在开发者工具中预览,测试完整流程
- 修复AI生成的Bug(通常有1-3个小问题)
- 真机预览验证
7.4 90-120分钟:测试、提交、审核
测试清单:
- [ ] 首页正常展示,按钮可点击
- [ ] 预约流程完整:选择服务 -> 选时间 -> 填信息 -> 提交
- [ ] 表单验证生效:必填项为空时提示
- [ ] 云函数正确接收数据并存入数据库
- [ ] 提交成功后跳转到确认页
- [ ] 真机测试:在不同手机上预览效果
提交审核:
- 在开发者工具中点击"上传",填写版本号和备注
- 登录微信公众平台,在"管理"->"版本管理"中提交审核
- 审核备注示例:"本小程序为预约咨询工具,功能包括服务展示和在线预约。测试账号:无(公开可用)。请审核人员按首页->预约->确认流程测试。"
7.5 实际遇到的问题和解决方法
问题1:日期选择器样式在真机上显示异常
- 原因:不同手机系统的原生组件渲染差异
- 解决:用AI生成自定义日期选择组件,替代原生picker
问题2:云函数部署后报错"permission denied"
- 原因:云数据库权限设置为"仅创建者可读写",但云函数以系统身份写入
- 解决:在云开发控制台修改集合权限为"所有用户可读,仅创建者和管理员可写"
问题3:提交审核被驳回,原因是"类目与功能不符"
- 原因:选择了"工具-效率办公"但页面中有支付相关文案
- 解决:移除支付文案,将类目改为"工具-实用工具",重新提交后通过
7.6 从上线到获取第一批用户
上线后动作:
- 生成小程序码,打印贴在办公场所或放入宣传物料
- 在微信朋友圈和社群分享,附使用教程
- 将小程序码嵌入公众号文章,引导读者使用
- 在知乎、小红书等平台发布相关干货文章,文末附上小程序链接
- 邀请5-10位种子用户免费使用,收集反馈并快速迭代
关键指标:
- 次日留存率:用户第二天是否回来使用
- 预约转化率:访问首页的用户中有多少人完成预约
- 用户反馈:通过小程序内的反馈入口收集意见
- NPS净推荐值:用户是否愿意推荐给同行
迭代方向:
- 第一周:修复Bug,优化表单体验
- 第二周:增加预约提醒(订阅消息)
- 第三周:增加评价和评分功能
- 第四周:增加套餐和优惠券功能
这个2小时案例的核心逻辑是:用AI解决80%的代码工作,你用20%的时间做产品决策和用户体验把关。小程序审核虽然存在不确定性,但通过正确的类目选择和资质准备,可以将风险降到最低。上线只是开始,持续迭代和获取用户才是独立开发者的长期课题。