查看更多资讯中心

小程序的启动2019-01-07 16:10 北京网站建设网

内容摘要:小程序的启动 首先来看一下小程序启动后首先会发生什么事情,引用官方文档的说明: 小程序启动之后,在 app.js 定义的 App 实例的 onLaunch 回调会被执行。 App({ onLaunch: function () { // 小...

小程序的启动

首先来看一下小程序启动后首先会发生什么事情,引用官方文档的说明:
 
小程序启动之后,在 app.js 定义的 App 实例的 onLaunch 回调会被执行。
 
App({
  onLaunch: function () {
    // 小程序启动之后 触发
  }
})
 
如上所示,这里又提到了一个文件——app.js,之前我们了解了app.json(全局配置,包含页面路径等)和app.wxss(全局样式),那么同理app.js也是一个用于描述公共逻辑代码的文件,是小程序中必须的两个主配置文件之一(app.json和app.js): 

这里暂且只需要明确一个小程序的主体必定是有3个文件构成的,分别是app.js(必须)、app.json(必须)和app.wxss(可选),明确了这一点之后我们继续来看刚才官方文档中提到的App实例,也就是在上面的代码中看到的App{()},这里就牵扯到了另一个重要概念——注册程序,属于逻辑层的操作(App Service),官方文档中有这样一句话:
 
增加 App 和 Page 方法,进行程序和页面的注册。
 
如上所示,Page方法我们之前已经见过了,WXML 中的动态数据均来自对应 Page的data,用于注册一个页面,关于Page我们后面再说,但我们需要知道App和Page方法是逻辑层(App Service)最核心的两个方法,接下来我们首先具体研究一下App方法,引用官方文档的概述:
 
App() 函数用来注册一个小程序。接受一个 object 参数,其指定小程序的生命周期函数等。
如上所示,object参数我们需要注意,在上面提到的onLaunch 回调就是这个object参数之一,上面示例代码的注释中说onLaunch会在小程序启动后触发,那么它会被调用几次?依旧从官方文档中来寻找答案,我们看一下App函数的object参数的所有属性:

属性 类型 描述 触发时机
onLaunch Function 生命周期函数–监听小程序初始化 当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
onShow Function 生命周期函数–监听小程序显示 当小程序启动,或从后台进入前台显示,会触发 onShow
onHide Function 生命周期函数–监听小程序隐藏 当小程序从前台进入后台,会触发 onHide
onError Function 错误监听函数 当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
其他 Any   开发者可以添加任意的函数或数据到 Object 参数中,用 this 可以访问

如上所示,可以看到onLaunch函数主要是做小程序的全局初始化工作,因为只会触发一次,类似于在android开发中的application中设置一个静态方法,在上面的表格中注意下描述列,onLaunch是一个生命周期函数,所以这里有必要再具体说明一下微信小程序中关于生命周期的一些概念,小程序的生命周期需要分为两部分来说,分别是:
 
1、应用的生命周期
2、页面的生命周期
 
这就不像在android中生命周期仅针对于界面(Activity、Fragment),在小程序的官方文档中并没有对生命周期做单独介绍,而是以注册程序和注册页面这两个标题来介绍了App()函数和Page()函数,然后分别在各自(App、Page)的object参数说明中以上面的表格的形式简单标记出了哪些是生命周期函数,关于Page后面再说,先回归正题,App()很明显有3个生命周期函数,分别是:
 
1、onLaunch
2、onShow
3、onHide
 
如上所示,除了onLaunch仅仅会执行一次之外,onShow和onHide都会根据生命周期的变化被多次执行,注意下在onShow触发时机中提到了一个前台和后台的概念,其实很简单,跟android的那几个容易混淆的onResume、onPause、onStop等等相比容易多了,引用官方文档的原话:
 
当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。

就是这么简单,那么小程序什么时候会被销毁?官方文档是这样说的:

只有当小程序进入后台一定时间,或者系统资源占用过高,才会被真正的销毁。

 



要做网站?680全包

要做小程序?680全包

咨询客服

蓝典客服热线 热线:05925325273 电话:13950058311 微信:13950058311 扫描二维码
添加客服微信

扫码关注

公众号:蓝典网络 (landianwl) 扫描二维码
关注蓝典公众号