1. 什么是微信小程序?
微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。小程序也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。
1.1 小程序的特点
- 无需安装:不占用手机存储空间
- 即用即走:使用方便,无需下载
- 开发门槛低:基于前端技术栈(HTML+CSS+JS)
- 跨平台:一次开发,多端运行(iOS、Android)
- 微信生态:天然拥有微信的社交能力和用户基础
2. 开发环境搭建
2.1 准备工作
-
注册微信小程序账号
- 访问微信公众平台
- 点击“立即注册”,选择“小程序”
- 按照指引完成注册流程
-
获取AppID
- 登录小程序后台
- 在“开发”->“开发设置”中获取AppID
- AppID是小程序的唯一标识,开发调试需要用到
2.2 安装开发者工具
- 下载微信开发者工具
- 根据操作系统选择对应版本(Windows/Mac)
- 安装并启动开发者工具
2.3 创建第一个小程序项目
- 打开微信开发者工具
- 点击“+”新建项目
- 填写项目信息:
- 项目名称:MyFirstMiniProgram
- 目录:选择本地文件夹
- AppID:填写获取的AppID(或使用测试号)
- 开发模式:小程序
- 后端服务:不使用云服务
- 点击“新建”完成创建

3. 小程序项目结构
创建成功后,你会看到以下目录结构:
my-first-miniprogram/
├── pages/ # 页面目录
│ ├── index/ # 首页
│ │ ├── index.js # 页面逻辑
│ │ ├── index.json # 页面配置
│ │ ├── index.wxml # 页面结构
│ │ └── index.wxss # 页面样式
│ └── logs/ # 日志页
├── utils/ # 工具类
├── app.js # 小程序逻辑
├── app.json # 小程序公共配置
├── app.wxss # 小程序公共样式
└── project.config.json # 项目配置
3.1 核心文件说明
- app.js:小程序入口文件,注册小程序生命周期函数
- app.json:全局配置文件,设置页面路径、窗口样式等
- app.wxss:全局样式文件
- pages/:存放所有小程序页面
- utils/:工具函数目录
4. 小程序基础语法
4.1 WXML(WeiXin Markup Language)
WXML是小程序的标签语言,类似于HTML:
<!-- pages/index/index.wxml -->
<view class="container">
<text>Hello, 小程序!</text>
<button bindtap="handleClick">点击我</button>
<image src="/images/logo.png" mode="aspectFit"></image>
</view>
4.2 WXSS(WeiXin Style Sheets)
WXSS是小程序的样式语言,基于CSS扩展:
/* pages/index/index.wxss */
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
}
text {
font-size: 24px;
color: #333;
margin-bottom: 20px;
}
button {
background-color: #07c160;
color: white;
padding: 10px 20px;
border-radius: 5px;
}
4.3 JavaScript逻辑层
// pages/index/index.js
Page({
data: {
message: '欢迎使用小程序'
},
handleClick: function() {
wx.showToast({
title: '按钮被点击了!',
icon: 'success'
})
},
onLoad: function() {
console.log('页面加载完成')
}
})
5. 小程序生命周期
5.1 应用生命周期(app.js)
// app.js
App({
// 小程序初始化完成时触发
onLaunch: function(options) {
console.log('小程序启动')
},
// 小程序显示到前台时触发
onShow: function(options) {
console.log('小程序显示')
},
// 小程序隐藏到后台时触发
onHide: function() {
console.log('小程序隐藏')
}
})
5.2 页面生命周期
// 页面.js文件
Page({
// 页面加载时触发
onLoad: function(options) {
console.log('页面加载', options)
},
// 页面初次渲染完成时触发
onReady: function() {
console.log('页面渲染完成')
},
// 页面显示时触发
onShow: function() {
console.log('页面显示')
},
// 页面隐藏时触发
onHide: function() {
console.log('页面隐藏')
},
// 页面卸载时触发
onUnload: function() {
console.log('页面卸载')
}
})
6. 常用API示例
6.1 网络请求
// 发起GET请求
wx.request({
url: 'https://api.example.com/data',
method: 'GET',
success: function(res) {
console.log('请求成功', res.data)
},
fail: function(err) {
console.log('请求失败', err)
}
})
6.2 本地存储
// 存储数据
wx.setStorageSync('userInfo', {name: '张三', age: 25})
// 读取数据
const userInfo = wx.getStorageSync('userInfo')
console.log(userInfo)
// 异步存储
wx.setStorage({
key: 'token',
data: 'abc123',
success: function() {
console.log('存储成功')
}
})
6.3 界面交互
// 显示提示框
wx.showToast({
title: '操作成功',
icon: 'success',
duration: 2000
})
// 显示加载框
wx.showLoading({
title: '加载中...',
mask: true
})
// 隐藏加载框
wx.hideLoading()
// 显示模态对话框
wx.showModal({
title: '提示',
content: '确定要删除吗?',
success: function(res) {
if (res.confirm) {
console.log('用户点击确定')
}
}
})
7. 实战:创建一个待办事项小程序
7.1 项目结构
todo-miniprogram/
├── pages/
│ ├── index/ # 首页
│ └── add/ # 添加页面
├── app.js
├── app.json
└── app.wxss
7.2 app.json配置
{
"pages": [
"pages/index/index",
"pages/add/add"
],
"window": {
"navigationBarTitleText": "待办事项",
"navigationBarBackgroundColor": "#07c160",
"navigationBarTextStyle": "white"
},
"tabBar": {
"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "images/home.png",
"selectedIconPath": "images/home-active.png"
},
{
"pagePath": "pages/add/add",
"text": "添加",
"iconPath": "images/add.png",
"selectedIconPath": "images/add-active.png"
}
]
}
}
7.3 首页实现
<!-- pages/index/index.wxml -->
<view class="container">
<view class="header">
<text>我的待办事项</text>
<text class="count">共{{todos.length}}项</text>
</view>
<view class="todo-list">
<block wx:for="{{todos}}" wx:key="id">
<view class="todo-item {{item.completed ? 'completed' : ''}}">
<checkbox checked="{{item.completed}}" bindtap="toggleTodo" data-id="{{item.id}}"></checkbox>
<text class="todo-text">{{item.text}}</text>
<button class="delete-btn" bindtap="deleteTodo" data-id="{{item.id}}">删除</button>
</view>
</block>
</view>
<view class="empty" wx:if="{{todos.length === 0}}">
<text>暂无待办事项,点击下方添加</text>
</view>
</view>
8. 调试与发布
8.1 调试技巧
- Console面板:查看日志和错误信息
- Sources面板:调试JavaScript代码
- Network面板:监控网络请求
- Storage面板:查看本地存储数据
- AppData面板:实时查看页面数据
8.2 真机调试
- 点击开发者工具右上角的“预览”按钮
- 使用微信扫描二维码
- 在手机上查看小程序效果
- 开启“真机调试”模式,可以在手机上查看Console日志
8.3 发布流程
- 代码上传:点击“上传”按钮,填写版本号和备注
- 提交审核:在小程序后台提交审核
- 等待审核:通常需要1-7个工作日
- 发布上线:审核通过后,点击“发布”即可上线
9. 常见问题与解决方案
9.1 页面白屏
- 原因:页面路径配置错误
- 解决:检查app.json中的pages配置
9.2 网络请求失败
- 原因:未配置合法域名
- 解决:在小程序后台配置request合法域名
9.3 样式不生效
- 原因:选择器权重问题或样式文件未引入
- 解决:检查WXSS文件引入,使用!important提高权重
9.4 真机与模拟器表现不一致
- 原因:设备差异或权限问题
- 解决:使用真机调试功能,检查权限配置
10. 学习资源推荐
10.1 官方文档
10.2 学习社区
- 优快云小程序专栏
- 掘金小程序话题
- 微信开放社区
10.3 实战项目
- 仿豆瓣电影小程序
- 天气查询小程序
- 电商购物小程序
- 新闻阅读小程序
总结
微信小程序开发门槛相对较低,但功能强大。通过本文的学习,你应该已经掌握了:
- 小程序的基本概念和特点
- 开发环境的搭建方法
- 小程序的项目结构和核心语法
- 常用API的使用方式
- 完整的开发调试发布流程
建议从简单的项目开始实践,逐步掌握更复杂的功能。小程序生态不断完善,持续学习新的API和最佳实践,才能开发出更优秀的小程序应用。
下一步建议:尝试开发一个完整的小程序项目,如个人博客小程序或工具类小程序,将理论知识转化为实践经验。
1万+



被折叠的 条评论
为什么被折叠?



