小程序已经成为连接用户与服务的重要载体,微信、支付宝、快手、抖音等平台都有自己的小程序生态。它们的开发范式高度相似:一套以 JavaScript 为核心的逻辑层 + 一套类 HTML 的视图层。本文以最常见的平台为例,梳理从小程序注册到首个版本上线的完整流程。
一、平台注册与准备
在小程序开放平台注册账号,完成主体认证(个人或企业)后,获得 AppID。AppID 是后续所有 API 调用的身份标识,务必妥善保存。
- 主体认证:个人主体功能受限(无法开通支付等),企业主体功能完整
- 服务类目:需提前规划小程序的服务类目,部分类目要求提供资质
- 域名白名单:接口请求的服务器域名需要在后台配置为合法域名,且必须 HTTPS
二、下载开发者工具
各平台官方提供开发者工具,内置模拟器、真机调试、代码上传等功能。基本开发流程:
# 命令行工具初始化项目(部分平台支持)
# 也可以在开发者工具中直接新建项目并填入 AppID
npx @miniapp/cli init my-miniapp
新建项目时填入 AppID,即可开始开发。开发者工具支持断点调试、网络面板、小程序体检等能力,建议开发阶段就善用这些工具。
三、认识项目结构
小程序项目采用"页面 + 全局"的组织方式,一个典型项目结构如下:
miniapp/
├── app.js # 全局逻辑(生命周期、全局数据)
├── app.json # 全局配置(页面路由、窗口样式、tabBar)
├── app.wxss # 全局样式
├── pages/
│ ├── index/
│ │ ├── index.js # 页面逻辑
│ │ ├── index.json # 页面配置
│ │ ├── index.wxml # 页面结构
│ │ └── index.wxss # 页面样式
├── components/ # 自定义组件
├── utils/ # 公共工具
└── project.config.json
核心概念就三个:
- WXML:负责页面结构,类似 HTML,支持数据绑定
{{ }}和条件/循环渲染 - WXSS:负责样式,支持大部分 CSS 特性,额外提供
rpx自适应单位 - JS:负责逻辑,通过
data驱动视图更新
四、第一个页面
一个典型的页面代码:
// pages/index/index.js
Page({
data: {
message: '你好,小程序!',
items: ['苹果', '香蕉', '橘子'],
},
onLoad() {
console.log('页面加载');
},
handleTap() {
this.setData({ message: '你点击了我' });
},
})
<!-- pages/index/index.wxml -->
<view class="container">
<text>{{ message }}</text>
<view wx:for="{{ items }}" wx:key="*this">{{ item }}</view>
<button bindtap="handleTap">点我</button>
</view>
注意:修改数据必须通过 setData,直接改 this.data 不会触发视图更新。
五、接口请求与域名配置
小程序内发请求需要使用平台提供的 request API,并满足域名白名单要求:
// 请求封装示例
function request(url, data = {}, method = 'GET') {
return new Promise((resolve, reject) => {
wx.request({
url,
data,
method,
header: { 'Content-Type': 'application/json' },
success: res => resolve(res.data),
fail: err => reject(err),
});
});
}
开发阶段可以在开发者工具中勾选"不校验合法域名",但正式发布前必须把域名配置到白名单,并保证服务器已启用 HTTPS。
六、提审与发布
开发完成后的上线流程:
- 自测:使用真机调试覆盖主要功能路径,重点检查支付、登录等核心流程
- 代码上传:在开发者工具中上传代码,填写版本号与备注
- 提交审核:在管理后台提交审核,填写测试说明,便于审核人员快速通过
- 审核通过:审核通过后可选择全量发布或分阶段灰度
- 版本管理:线上出问题时通过后台快速回滚到上一版本
七、常见审核驳回原因
- 功能无法体验:审核人员无法登录/无法进入核心页面
- 类目不符:实际功能与所选服务类目不匹配
- 诱导分享:页面存在诱导用户分享的文案或设计
- 隐私问题:未在隐私协议中说明收集用户信息的用途
小结
小程序开发的入门门槛不高,重点是把注册认证、项目结构、接口请求和提审发布这几个环节摸透。掌握了这套流程,跨平台迁移时只需要处理平台差异即可。