在app.js里是一个App( )函数,定义全局函数和数据,还可用来注册一个微信小程序
在App( )函数里有一些生命周期函数
App( )里的生命周期函数
| 属性 | 类型 | 描述 | 触发时机 |
|---|---|---|---|
| onLaunch | Function | 监听微信小程序初始化 | 小程序初始化完成时(全局只触发一次) |
| onShow | Function | 监听微信小程序显示 | 小程序启动,或者从后台进入前台显示时 |
| onHide | Function | 监听小程序隐藏 | 小程序从前台进入后台时 |
| onError | Function | 错误监听函数 | 小程序发生脚本错误或者API调用失败时触发,会带上错误信息 |
| onPageNotFound | Function | 页面不存在监听函数 | 小程序要打开的页面不存在时触发,会带上页面信息回调该函数 |
App({onLaunch(options){//当微信小程序完成初始化时执行},onShow(options){//微信小程序启动,或从后台进入前台显示时},onHide(){//微信小程序从前台进入后台时},onError(msg){//微信小程序发生脚本错误,或者API调用失败时触发console.log(msg)},userFunc(){console.log("自定义函数")},globalData:{//全局数据student_number:100}})
在页面js文件里,如果要获取全局数据,通过执行getApp()获取微信小程序App示例,然后就可以调用到globalData,代码如下
var appInstance = getApp();console.log(appInstance.globalData.student_number);
Attention
(1)App()是单例的,只能注册一个,且只能在app.js中注册
(2)不要在App内的函数中调用getApp(),使用this就可以获取到App实例对象
(3)不可以在onLaunch函数中调用getCurrentPage( )函数,因为此时page还没有创建好
(4)在页面js文件中通过getApp( )获取到App实例后,不要调用App的生命周期函数,只可以调用自定义函数和全局变量,生命周期函数是程序自动调用执行的
