25. 移动端-微信小程序
文章目录
前言
微信小程序的开发语言和上线流程
微信小程序的开发语言是一套受限 JS + 自研视图层 + JSON 配置的封闭技术栈,上线则是代码包上传到微信后台 → 审核 → 发布,而不是传统意义上部署到自己的服务器(后端另算)。
一、开发语言与技术栈
原生小程序(官方栈)
-
WXML(WeiXin Markup Language):类 HTML 的页面结构语言,支持数据绑定、
wx:if、wx:for等指令,不能用 DOM 操作。 -
WXSS(WeiXin Style Sheet):类 CSS,扩展了
rpx响应式单位(750rpx = 屏幕宽),部分 CSS 选择器受限。 -
JavaScript / TypeScript:逻辑层语言,跑在 JSCore / V8 里,没有 window、document、DOM/BOM,不能用 jQuery 等浏览器库;TS 在官方工具里已原生支持,中大型项目建议直接用 TS。
-
JSON:
app.json管全局路由/tabBar/分包,页面级.json管单页配置。 -
WXS:类似简化版 JS,跑在渲染层,用于 WXML 里做轻量计算(如格式化价格)。
逻辑层和渲染层分离是小程序和 Web 最大的区别:逻辑层 JS 在独立线程,渲染层在 WebView,二者通过 Native 通信。
跨端框架(编译到小程序原生)
-
Taro(React/Vue 语法,React 团队友好)
-
uni-app(Vue 语法,插件市场丰富,Vue 团队友好)
-
它们最终都编译成 WXML/WXSS/JS 再走微信流程,复杂原生能力可能需要写 condition 代码。
后端侧
-
自有后端:常规 Node/Java/Go + HTTPS 接口,需在公众平台配 request 合法域名(仅 HTTPS、不支持 localhost/IP)。
-
微信云开发 / 云托管:云函数(Node/Python/Go)、云数据库、云存储、CMS,免运维;云托管还能跑任意容器镜像。
二、开发到上线的完整流程
1. 账号与准备
-
微信公众平台注册小程序,选个人 / 企业 / 组织主体(企业要做微信认证、开通支付等)
-
后台「开发 → 开发设置」拿 AppID
-
配成员权限(开发者、体验者)、配服务器域名(自有后端时才需要)
2. 本地开发
-
装微信开发者工具(Windows/Mac)
-
用 AppID 新建项目,目录里
app.js/app.json/app.wxss+pages/*是标准结构 -
写页面 → 模拟器实时预览 → 真机扫码调试 → 跑 Console/Network/Performance 面板排错
3. 提测(体验版)
-
开发者工具点「上传」,填版本号+备注 → 进后台「版本管理」变成开发版
-
后台加体验者微信号 → 体验者微信里能看到体验版二维码
4. 提交审核
-
体验通过后在后台对该版本点「提交审核」
-
填功能说明、测试账号、审核截图,特殊类目(电商、医疗、直播等)要传资质
-
审核一般 1–7 个工作日,被拒按反馈改了重提
5. 发布
-
审核通过 → 后台点「发布」→ 全量上线
-
也可选灰度发布(按比例放量),出问题用新版本覆盖(发布后不能回滚到旧包,只能发新版)
6. 企业级 CI/CD(可选但推荐)
手动点上传在团队里会乱,工业做法是:
-
Git 推代码 → CI(GitHub Actions / GitLab CI / Jenkins)跑 lint、单测、包体积检查(主包 ≤ 2MB)
-
用 miniprogram-ci(命令行,不需开开发者工具)拿上传密钥 + IP 白名单把构建产物传微信后台
-
用 robot 编号隔离 dev/test/prod 体验版,审核通过后再由人点发布或脚本调开放接口发
三、几个容易踩的坑
-
包体积:主包 2MB、总包 20MB(含分包),超限必须分包或挪到 CDN/云存储
-
域名白名单:
wx.request必须走配置过的 HTTPS 域名,本地调试可临时关校验但上线不行 -
DOM 思维:别把 Web 项目直接搬过来,凡是操作 DOM 的库都得换
-
审核被拒高频原因:类目不符、隐私弹窗没接、诱导分享、虚拟支付走错通道
四、实战
📦 交付物一:小程序完整项目(miniprogram-demo.zip)
一个开箱即用的微信小程序云开发项目,包含:
| 模块 | 内容 |
|---|---|
| 首页 | 搜索栏 + 轮播图 + 功能网格 + 文章列表 + 下拉刷新/上拉加载 |
| 我的页 | 微信登录 + 用户统计(文章/点赞/关注/粉丝)+ 菜单列表 + 退出登录 |
| 详情页(分包) | 文章详情 + 点赞/收藏/分享 + 评论区 |
| 登录页 | 微信一键登录 + 用户协议勾选 |
| 3个云函数 | login(登录)、getBanners(轮播图)、getUserStats(统计) |
项目亮点:
-
演示了云开发模式(
wx.cloud.database()直连数据库)和自有后端模式(wx.request()请求 HTTPS 接口)两种写法,注释切换即可 -
使用了分包加载(
packageA),主包更轻量 -
全局样式、通用组件结构清晰,方便二次开发
**使用方法:** 解压 → 微信开发者工具导入 → 开通云开发 → 创建集合 → 右键上传云函数 → 运行
📊 交付物二:云开发 vs 自有后端 对照表(comparison-table.html)
用浏览器打开,可看到一份精美的可视化对照表,涵盖 6 大维度:
-
基础信息 — 定位、核心组件对比
-
开发体验 — 上手速度、代码量、调用方式、数据库、认证
-
成本与运维 — 初期成本、运维负担、弹性扩容、隐藏成本
-
能力与限制 — 数据库能力、定时任务、第三方集成、跨平台、数据迁移
-
安全 — 数据安全、防刷限流、合规
-
适用场景 — 最适合 / 不太适合
底部还有决策建议卡片,帮你快速判断该选哪种方案。
💡 核心结论速记
小项目 / 快速验证 → 云开发(省时省钱,前端一人搞定)
大项目 / 多端统一 → 自有后端(灵活可控,需后端团队)
过渡方案 → 先用云开发上线,大了再迁;或用云托管跑容器
miniprogram-demo.zip
更多推荐
所有评论(0)