由于框架并非运行在浏览器中,所以 JavaScript 在 web 中一些能力都无法使用,如 document,window 等,所以以前写js的一些思路可能要改变
一、APP()
小程序销毁的两种情况:
1.小程序在进入后台一段时间后或者占用资源过多时,会从后台状态转为销毁
2.关闭小程序的功能在公共库版本1.1.0开始支持, 当用户从扫一扫、转发等入口(场景值为1007, 1008, 1011, 1025)进入小程序,且没有置顶小程序的情况下退出,小程序会被销毁。
除了onLaunch()、onShow()、onHide()、onError()之外开发者可以添加任意的函数或数据到Object参数中,用this可以访问
App()必须在app.js选中注册,且不能注册多个。
onlaunch时不能调用getCurrentPages(),此时page还没有生成
onLaunch()、onShow()中可以获取场景值,但是Android系统按home键退出到桌面然后从桌面再次进入小程序的场景值无法获得,此时,会保留上一次的场景值。
示例:
App({
onLaunch: function () { //监听小程序初始化,初始化完成时,会触发onlaunch,全局只触发一次
console.log('App Launch')
},
onShow: function () { //监听小程序显示,当小程序启动或从后台进入前台显示,会触发onshow
console.log('App Show')
},
onHide: function () { //监听小程序隐藏,当小程序从前台进入后台,会触发onHide
console.log('App Hide')
},
onError: function () { //错误监听函数,当小程序发生脚本错误,或者api调用失败时,会触发onError并带上错误信息
console.log('App Error')
},
globalData:{ //用户自己定义的函数
userInfo:null
}
})
二、 getApp()
getApp()可以获取小程序示例,但是在定义于App()内的函数中不能调用getApp(),使用this可以获取app实例
使用getApp()获取实例后,不要私自调用生命周期函数
var appInstance = getApp() //获取app实例
console.log(appInstance.globalData) //打印实例中的globalData