现在打开
app.js
//app.js App({ onLaunch(options) { //小程序初始化 // console.log("小程序初始化", options) }, onShow(options) { //小程序启动,或者由后台切换到前台 // console.log("小程序启动,或者由后台切换到前台", options); }, onHide(options) { //小程序切换到后台 console.log("小程序切换到后台", options); wx.showToast({ title: '12345', }) }, onError(options) { //错误监听函数 console.log("错误监听函数", options); }, // onPageNotFound(options) { // //页面不存在时监听函数 // console.log("页面不存在时监听函数", options) // }, diy_add: { str_name: "我是自定义添加的数据 str_name,可以被所有小程序页面使用", fc_name() { console.log("我是自定义添加的数据 str_fc,可以被所有小程序页面使用") }, } })
为了便于观察,我去除了里面多余的代码,并标出了个小程序生命周期的钩子函数,以及定义一些可以被所有页面使用的自定义变量
app()
app()这个方法的作用是注册一个小程序,每个小程序都需要在 app.js
中调用 App
方法注册小程序实例,绑定生命周期回调函数、错误监听和页面不存在监听函数等。它在全局中只执行,并且仅仅只能执行一次。否则会造成未知错误
生命周期钩子函数
介绍:生命周期钩子函数就是小程序运行到特定阶段中提供开发者编写自己业务逻辑的机会
onLaunch 小程序初始化之后,这个生命周期钩子函数全局只触发一次,小程序启动时触发一次之后,再不会触发。在这个阶段,小程序的初始化已经完成,你已经可以访问app()中自定义的数据。同时
onShow 小程序启动,可以触发多次,当小程序启动,或者小程序从后台进入前台时,都会触发这个函数,并且这两个函数,都接收一个参数,参数内容
onHide 小程序进入后台,可以触发多次当小程序计入后台时触发不接
onPageNotFound 小程序切换页面不存在时可以触发,这个钩子函数是一个很奇葩的存在,当你使用navigateTo等路由切换api切换到page的时候而page不存在,并不会触发这个函数,只会报个错误出来。这是官方的一个bug,不知道现在修复没有。
自定义项
整个小程序只有一个 App 实例,是全部页面共享的。开发者可以通过 getApp
方法获取到全局唯一的 App 实例,获取App上的数据或调用开发者注册在 App
上的函数。
如diy_add
idnex page:
* 生命周期函数--监听页面加载 */ onLoad: function (options) { console.log(getApp()); },
结果