在微信小程序浅析中讲到微信小程序原理以及怎么新建一个hello world 工程,还挖了坑。现在把坑填上,捋一捋小程序的代码结构。看一下截图:
全局文件
看一下目录结构:
前面也说到,全局文件有且只有三个app.js、app.json、app.wxss。我们瞄一瞄里面的内容:
app.js
//app.js
App({
onLaunch: function () {
//调用API从本地缓存中获取数据
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
},
getUserInfo:function(cb){
var that = this
if(this.globalData.userInfo){
typeof cb == "function" && cb(this.globalData.userInfo)
}else{
//调用登录接口
wx.login({
success: function () {
wx.getUserInfo({
success: function (res) {
that.globalData.userInfo = res.userInfo
typeof cb == "function" && cb(that.globalData.userInfo)
}
})
}
})
}
},
globalData:{
userInfo:null
}
})
可以看到,app.js里面有个app方法负责注册小程序,该方法接收一个object对象,该object对象包含小程序的全局数据、全局函数和生命周期函数等。比如globalData是全局数据,getUserInfo为全局函数、onLaunch是启动时调用的生命周期函数。值得注意的是小程序只能再里面注册,并且在其他地方不要调用生命周期函数,生命周期函数应由微信内部调用,我们只负责实现。
app.json
{
"pages":[
"pages/index/index",
"pages/logs/logs"