后台经常有人问我:想学小程序开发,从哪开始?我一般不会甩一堆文档链接过去,而是先问一句:你手上有没有一个具体想做的功能?有的话,咱们就从那个功能倒着推。这篇就当是我带新人时用的入门笔记,尽量少讲空话,多讲我踩过的坑。
一、先把运行环境跑起来
微信开发者工具是绕不开的,去官网下载稳定版就行。装完之后注册一个小程序账号,拿到 AppID。没有 AppID 也能用测试号,但真机调试会受限,建议一开始就申请正式的。
新建项目时有两个选择要留意:
- 后端服务选「不使用云服务」还是「微信云开发」。新手我一般推荐先用云开发,省掉服务器和域名备案,前期验证想法特别快。
- 模板选「不使用模板」,空项目反而干净,能逼你把目录结构搞明白。
项目建好后,目录里最核心的是这几个:app.js 管全局逻辑,app.json 管页面路由和窗口配置,每个页面一个文件夹,里面是 .wxml、.wxss、.js、.json 四件套。别嫌它啰嗦,这套结构和 Web 前端很像,学过 HTML/CSS/JS 的人上手很快。
二、从数据到界面,先跑通一个列表
我教人学框架有个习惯:第一个 demo 永远是列表页。原因很简单,列表把「数据定义、数据绑定、事件、渲染」全串起来了。
页面的 js 里先定义数据:
Page({
data: {
list: []
},
onLoad() {
this.setData({
list: [
{ id: 1, title: '第一条' },
{ id: 2, title: '第二条' }
]
})
}
})wxml 里用 wx:for 渲染:
<view wx:for="{{list}}" wx:key="id" bindtap="onTap" data-id="{{item.id}}">
{{item.title}}
</view>这里有两个细节新手常忽略:wx:key 一定要写,不写的话列表更新会出诡异问题;data-id 这种自定义属性,在事件里通过 e.currentTarget.dataset.id 取,别和 e.target 搞混,后者在嵌套结构里经常取错。
还有 setData,它是异步的,而且每次调用都有通信开销。我在项目里养成的习惯是:能合并就合并,别在循环里疯狂调 setData,列表长的时候性能掉得很明显。
三、页面跳转和参数传递
小程序没有浏览器的 history,页面栈由框架管理。常用的跳转方式:
wx.navigateTo:保留当前页,打开新页,最多十层。wx.redirectTo:关掉当前页再开新页,适合登录后跳首页这种场景。wx.switchTab:只能跳 tabBar 页面,而且不能带参数。
传参就用 URL 拼接,接收方在 onLoad(options) 里拿。注意参数值要 encodeURIComponent,中文和特殊字符不处理会出问题。
四、云开发:个人开发者最省事的后端
如果你是自己做小工具、接点私活,云开发真的能省很多事。数据库、存储、云函数都在控制台里点几下就有了,不用买服务器、不用备案。
一个典型的读写操作长这样:
const db = wx.cloud.database()
db.collection('notes').add({
data: { title: '测试', createdAt: Date.now() }
}).then(res => {
console.log(res._id)
})但云开发不是银弹,有两个坑得提前知道:一是权限配置,默认规则下用户只能读写自己的数据,涉及共享数据要写云函数绕过去;二是免费额度有限,数据库读写次数超了会断服务,上线前一定看下配额。
五、上线前必须检查的几件事
代码写完只是开始,提审才是真正折磨人的环节。我列个自己的检查清单:
- 类目要和实际功能匹配,选错了大概率被驳回。
- 页面里不能出现测试数据、空白页、明显的「开发中」字样。
- 涉及用户信息的,隐私协议和授权弹窗要齐全。
- 体验版先用真机走一遍主流程,模拟器和真机差别不小。
被驳回别慌,看清楚驳回理由,按提示改,一般两三次就能过。我第一次提审因为一个页面没内容被拒,改了半小时就通过了。
六、给新手的几句实话
小程序开发的门槛确实不高,语法简单、文档齐全,但真正拉开差距的是工程习惯:目录怎么分、状态怎么管、异常怎么兜底。我的建议是先完整做一个能给自己用的小工具,比如记账、打卡、待办,从需求到上线走一遍。走完这一遍,你对 setData、生命周期、云开发的理解会比看十篇教程都深。
别一上来就想着做平台级产品,先把手感练出来。下一篇我打算写写小程序性能优化的几个实操点,有兴趣的可以蹲一下。

评论 (0)
还没有评论,快来抢沙发吧~