怎么开发一个微信小程序

开发一个微信小程序,主要有两种路径:原生开发 和跨端框架开发。选择哪种,取决于你的技术背景和项目需求。

📌 先做选择:原生 vs 跨端

维度 原生开发 跨端框架 (uni-app / Taro)
技术栈 WXML/WXSS/JS,类似 Web Vue (uni-app) 或 React (Taro)
性能 最佳,API 支持最全 良好,但有一定转换损耗
开发效率 只针对微信,效率一般 一套代码可编译到多端,效率高
适用场景 性能敏感、仅做微信端 需同时做 H5、App 或多平台小程序

如果你的项目只做微信小程序 ,且对性能有极致要求,选原生开发 。

如果未来可能扩展到 H5、App 或其他平台 ,或者团队熟悉 Vue/React,选跨端框架更划算。

下面以最通用的原生开发流程为主线来讲解。


🚀 第一步:准备工作(资质与工具)

在写代码前,需要先拿到"入场券"和"工具箱"。

1. 注册小程序账号 访问微信公众平台,注册"小程序"账号。注意:

  • 个人主体:无法开通微信支付、附近的小程序等能力。
  • 企业主体:需营业执照,可开通支付等完整功能。

2. 完成小程序备案(强制) 自2023年9月起,所有新小程序必须完成 ICP 备案才能上架 。建议注册完账号后立即提交备案,与开发并行,因为管局审核可能需要 1-20 个工作日。

3. 获取 AppID 在后台"开发 → 开发管理 → 开发设置"中获取 AppID,这是小程序的唯一标识,开发时必须用到。

4. 下载微信开发者工具 前往官方下载页,选择稳定版安装。这是官方必备的开发环境,集成了编码、预览、调试和上传功能。


🏗️ 第二步:理解项目结构

用开发者工具新建项目后,你会看到标准的小程序文件结构。核心是全局三件套 和页面四件套。

全局文件(根目录)

  • app.json:全局配置,决定页面路径、窗口样式、底部 TabBar 等。
  • app.js:全局逻辑,注册应用、管理全局数据。
  • app.wxss:全局样式。

页面文件(每个页面一个文件夹) 每个页面由四个文件组成:

  • .wxml:结构,类似 HTML,但只能用微信提供的组件(view、text、button 等)。
  • .wxss:样式,类似 CSS,支持 rpx 响应式单位(750rpx = 屏幕宽度)。
  • .js:逻辑,用 Page() 注册页面,处理数据与交互。
  • .json:页面配置,可覆盖全局窗口样式。

关键机制:setData 与双线程 小程序采用双线程模型 :逻辑层(JS)和渲染层(WXML/WXSS)分离。你不能直接操作 DOM ,想让页面变化,必须调用 this.setData() 把数据从逻辑层发送到渲染层,驱动视图更新。这是小程序最核心的开发思维。


💻 第三步:编写核心代码

1. 配置页面路由 在 app.json 的 pages 数组中注册所有页面路径,第一项为首页:

json 复制代码
{
  "pages": ["pages/index/index", "pages/detail/detail"],
  "window": { "navigationBarTitleText": "我的小程序" }
}

2. 写一个计数器页面 这是理解数据绑定和 setData 的最小示例:

index.wxml

html 复制代码
<view class="box">
  <text>计数:{{count}}</text>
  <button bindtap="add">+1</button>
</view>

index.js

js 复制代码
Page({
  data: { count: 0 },
  add() {
    this.setData({ count: this.data.count + 1 })
  }
})

点击按钮触发 add,setData 更新 count,视图自动刷新。

3. 理解生命周期 页面常用的生命周期钩子:

  • onLoad:页面加载,只执行一次,适合接收参数。
  • onShow:页面显示,每次进入都可能触发。
  • onReady:首次渲染完成。
  • onHide / onUnload:页面隐藏 / 卸载。

🔌 第四步:对接后端与微信能力

1. 网络请求 用 wx.request 发起请求,但务必封装统一的 request 函数,统一处理 baseURL、Token 注入和错误提示。

js 复制代码
// utils/request.js
const request = (url, method, data) => {
  return new Promise((resolve, reject) => {
    wx.request({
      url: `https://你的域名${url}`,
      method,
      data,
      header: { Authorization: wx.getStorageSync('token') },
      success: res => resolve(res.data),
      fail: reject
    })
  })
}
export default request

2. 配置服务器域名 后端接口的域名必须在小程序后台"开发设置 → 服务器域名"中配置 ,且必须是 HTTPS 协议,否则请求会被拦截。

3. 登录鉴权 标准流程:wx.login 拿到 code → 发给后端 → 后端调用微信接口换取 openid 和 session_key → 生成 Token 返回 → 小程序存储 Token 后续携带。

4. 常用微信能力

  • 微信支付:需企业主体,在后台绑定商户号并配置 API v3 凭证。
  • 获取用户信息 :wx.getUserProfile,需在隐私协议中声明用途。
  • 分享转发 :页面中定义 onShareAppMessage 即可。

🐞 第五步:调试与优化

  • 真机预览:开发者工具点"预览",手机扫码查看真实效果。
  • 真机调试 :远程连接查看真机控制台报错,涉及支付、相机、定位时必须真机测试。
  • 性能优化 :
    • 主包控制在 2MB 以内 ,非核心页面用分包加载。
    • 避免频繁调用 setData,只传变化的数据。
    • 长列表用虚拟滚动,图片压缩后用 CDN 加载。

📦 第六步:提交审核与发布

  1. 上传代码:在开发者工具点击"上传",填写版本号。
  2. 提交审核 :在微信公众平台后台提交审核。审核周期通常 2-12 小时,特殊行业可能需 1-3 天。
  3. 全量发布:审核通过后,手动点击"发布",小程序正式上线。
  4. 注意 :每个小程序每周最多可提审 3 次,请合理规划。

⚠️ 常见坑与建议

  • 隐私协议 :涉及手机号、定位等敏感信息,必须在后台配置隐私协议,否则审核直接驳回。
  • 服务类目:必须与实际功能匹配,选错会被拒审。
  • 域名配置 :服务器域名每月只能修改 50 次,提前规划好。
  • AI 辅助:可以用 AI 工具辅助写 WXML/WXSS 样式,节省布局时间,但核心逻辑仍需自己把关。
  • 善用组件库 :用 Vant Weapp 或 TDesign 等成熟组件库,避免重复造轮子。

开发小程序最核心的是理解 "数据驱动视图" 的思维(setData)和生命周期。如果你告诉我具体想做什么类型的小程序(电商、工具、预约等),我可以给你更具体的技术选型和代码结构建议。

相关推荐
console.log('npc')1 小时前
第 3 章 工程化与项目初始化
前端·人工智能·大模型
掘金者阿豪1 小时前
数据集成软件不能只看“同步成功”:聊聊金仓 KFS 和订单数据同步这件事
前端·后端
风骏时光牛马1 小时前
Navicat Premium 18 自动续试用天数
前端
hunterandroid1 小时前
HarmonyOS HUKS 密钥全生命周期实战:生成、轮换与失效处理
前端·华为
东鹏特饮1 小时前
贪吃蛇小游戏html
前端·javascript·html
溪语流沙1 小时前
【每天一个CSS | Day23】边框上有一道光在跑的流光呼吸卡片
前端·css
小马不起床2 小时前
零基础玩转 FastAPI_10:前端登录、权限与布局
前端·状态模式·fastapi
程序员Sunday2 小时前
JavaScript 深拷贝和浅拷贝有什么区别?structuredClone 能替代 JSON 拷贝吗?
前端·javascript
ShineWinsu2 小时前
对于CSS:选择器的解析
前端·css·面试·html·web·选择器·网页