
微信小程序不是“缩小版网页”,而是运行在微信生态里的轻应用。它无需下载安装,即用即走,却能调用摄像头、定位、支付、蓝牙等能力。理解它的关键,不是背 API,而是抓住五个词:双线程、WXML/WXSS/JS/JSON、setData、生命周期、发布审核。
小程序是微信提供的一种应用形态。用户通过扫码、搜索、分享或公众号进入,用完即走,不占桌面图标。对开发者来说,它有一套独立框架:
它看起来像前端,但运行机制与浏览器不同。
小程序采用双线程架构:
这意味着,逻辑层不能直接操作 DOM。想让页面变化,必须调用 setData,把数据从逻辑层发送到渲染层。
所以小程序的开发思维是:数据驱动视图,而不是手动改页面。
一个最小小程序通常包含:
app.js 全局逻辑
app.json 全局配置
app.wxss 全局样式
pages/
index/
index.wxml
index.wxss
index.js
index.jsonapp.json 决定页面路径和窗口样式,例如:
{
"pages": ["pages/index/index"],
"window": { "navigationBarTitleText": "计数器" }
}每个页面由四个文件组成,分别负责结构、样式、逻辑和页面配置。
view、text、button;rpx 单位,750rpx 等于屏幕宽度;Page() 注册页面,用 App() 注册应用;它们的关系可以概括为: WXML 是骨架,WXSS 是皮肤,JS 是大脑,JSON 是说明书。
下面这个页面,点击按钮后数字加一。它包含了数据绑定、事件和 setData。
<!-- pages/index/index.wxml -->
<view class="box">
<text>计数:{{count}}</text>
<button bindtap="add">+1</button>
</view>// pages/index/index.js
Page({
data: { count: 0 },
add() {
this.setData({ count: this.data.count + 1 })
}
})/* pages/index/index.wxss */
.box {
padding: 40rpx;
text-align: center;
}这里发生了三件事:
data 中的 count 被绑定到 WXML;add 事件;setData 更新数据,渲染层自动刷新。这就是小程序最核心的工作方式。
页面常用生命周期包括:
onLoad:页面加载,只执行一次,适合接收参数;onShow:页面显示,每次进入都可能触发;onReady:页面首次渲染完成;onHide:页面隐藏;onUnload:页面卸载。应用级别还有 onLaunch、onShow、onHide。
理解生命周期,才能知道数据该在哪里请求、定时器该在哪里清理、状态该在哪里保存。
小程序提供大量 API:
wx.request:发起网络请求,需要配置合法域名;wx.login:获取登录凭证 code;wx.navigateTo:跳转页面;wx.showToast:轻提示;wx.getLocation:获取位置;wx.scanCode:扫码。如果想少写后端,可以用云开发:云函数、云数据库、云存储。 它适合快速做 MVP,但也要注意权限控制和数据安全。
小程序包体有大小限制,主包通常限制在 2MB 左右,整体可通过分包扩展。因此要:
setData 只传变化的数据,不要传大对象;体验上,还要注意加载态、空状态、错误提示和授权引导。
上线一个小程序,通常要经过:
审核会关注类目、内容合规、隐私协议和用户授权。 不要把 AppSecret 放在前端,也不要用小程序做违规内容。
微信小程序看似简单,实则是一套完整的应用框架。
它用双线程保证安全与体验,用 setData 连接逻辑与视图,用生命周期管理页面状态,用审核机制控制生态质量。
如果只记一句话: 小程序不是写页面,而是用数据驱动页面,在微信生态里完成一次轻量服务。
从计数器开始,到支付、地图、云开发,路径很长,但核心始终是那五个词: 双线程、四类文件、setData、生命周期、发布审核。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。