一、小程序基础结构解析
一个完整的小程序项目通常包含以下几个关键文件和目录:
markdown
# blog 小程序
- app.json 应用配置
- appName navigationBar
- tabBar
- 小程序架构
- app 应用的概念
全局
app.json 全局使用的组件
app.wxss
app.js
- pages
- page
- wxml
- wxss
- js
- json
1. app.json ------ 全局配置中心
这是整个小程序的"总开关",用于配置全局信息:
- appName:设置小程序标题
- navigationBar:导航栏样式(如颜色、标题)
- tabBar:底部标签栏配置(图标、文字、页面路径)
✅ 示例:
json
{
"pages": ["pages/index/index", "pages/logs/logs"],
"window": {
"navigationBarTitleText": "我的博客"
},
"tabBar": {
"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "images/home.png"
}
]
}
}
2. app.js ------ 应用逻辑入口
每个小程序都有一个 app.js 文件,它是全局的 JavaScript 实例,可以用来定义全局变量、监听生命周期等。
javascript
App({
onLaunch() {
console.log('小程序启动');
},
globalData: {
userInfo: null
}
});
3. 页面结构(pages)
每个页面由四个文件组成:
| 文件 | 作用 |
|---|---|
.wxml |
结构模板(类似 HTML) |
.wxss |
样式表(类似 CSS) |
.js |
页面逻辑(数据、事件) |
.json |
页面配置(如导航栏隐藏) |
💡 提示:所有页面都继承自
Page()构造函数,通过data属性管理页面数据。
二、事件机制详解
小程序中的交互离不开事件处理。常见的事件有:
1. bindtap vs catchtap
bindtap:绑定点击事件,允许事件冒泡catchtap:阻止事件冒泡(只执行当前元素)
ini
<view bindtap="handleClick">点击我</view>
<view catchtap="stopBubble">不会触发父级事件</view>
2. onLoad, onShow, onReady 等生命周期
在页面的 .js 中,你可以使用这些钩子函数来控制页面行为:
javascript
Page({
data: {
count: 0
},
onLoad() {
console.log('页面加载完成');
},
onShow() {
console.log('页面显示');
},
handleClick() {
this.setData({
count: this.data.count + 1
});
}
});
三、关键概念总结
| 概念 | 说明 |
|---|---|
Page({}) |
每个 .js 文件都是一个 Page 实例 |
data |
页面可访问的数据对象 |
setData() |
更新页面数据的唯一方法 |
| 事件绑定 | 使用 bindxxx 或 catchxxx 绑定事件 |
⚠️ 注意:不能直接修改
data,必须通过this.setData()来更新!
四、实战建议
- 合理拆分页面逻辑:避免在一个页面中写太多代码。
- 利用全局变量共享数据 :如用户登录信息存放在
app.globalData。 - 善用事件冒泡机制:提升性能,减少重复绑定。
- 调试技巧:使用微信开发者工具的"真机调试"功能查看运行效果。
结语
小程序开发看似简单,但细节决定成败。掌握好 app.json 配置、页面结构和事件机制,是迈向高效开发的第一步。希望这篇文章能帮你理清思路,少走弯路!
如果你觉得有用,欢迎点赞收藏,并关注我获取更多前端实战干货!