- 微信小程序:开发入门及案例详解
- 李骏 边思
- 869字
- 2023-01-06 19:19:21
2.3.2 小程序逻辑(app.js)
小程序中逻辑文件分为页面逻辑文件和小程序逻辑文件,app.js便是小程序逻辑文件,在这个文件中,我们可以通过App()函数注册小程序生命周期函数、全局方法和全局属性,已注册的小程序实例可以在其他逻辑层代码中通过getApp()获取。
1.注册小程序
App()函数用于注册一个小程序,参数为一个Object对象,在这个参数对象中我们可以注册自定义方法和属性供全局使用,就像在quick start项目中,我们利用App()注册了用户登录信息。App()函数必须在app.js中注册,且不能注册多个,其参数属性如下:
□onLaunch:生命周期函数,监听小程序初始化。当小程序初始化完成时,就会触发onLaunch, onLoaunch事件全局只会触发一次。
□onShow:生命周期函数,监听小程序显示。当小程序启动,或者从后台进入前台显示时都会触发onShow。
□onHide:生命周期函数,监听小程序隐藏。当小程序从前台进入后台会触发。
□其他:开发者可以添加任意的函数或数据到Object参数中,这些属性会被注册到小程序对象中,其他逻辑文件可以通过getApp()函数获取已注册的小程序实例。
关于小程序生命周期函数的执行时机我们要特别讲解一下:当启动一个小程序时,首先会先依次触发onLaunch和onShow方法,然后通过app.json的pages属性注册相应的页面,最后根据默认路径加载首页;当用户点击左上角关闭,或者按了设备Home按钮离开微信时,小程序并没有直接销毁,而是进入了后台,这两种情况都会触发onHide方法;当再次唤醒微信(针对点击Home按钮离开微信)或再次从微信中打开小程序时,又会从后台进入前台,这时会触发onShow方法。只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正销毁。
注册小程序示例代码如下:
App( { onLaunch : function() { // 小程序初始化完成时执行 }, onShow : function() { // 显示小程序时执行 }, onHide : function() { // 隐藏小程序时执行 }, globalFunction : ’我是全局函数’, globalData : ’我是全局属性’ } );
2.获取小程序实例
注册小程序后,在其他逻辑文件中,可以通过全局函数getApp()获取小程序实例,例如:
var app = getApp(); console.log( app.globalData );
在App()注册的函数中,我们可以使用this直接获取App实例,而不用getApp()方法。通过getApp()获取实例后,可以获取注册的属性、调用注册的方法,但不要私自调用生命周期函数(onLaunch、onShow、onHide),这样会打乱项目逻辑,除非你已经对它们很熟悉。