微信小程序生命周期函数
请参考:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/app.html
App声明周期函数
onLaunch(options):
 
 1.  
 调用时机:小程序被加载完毕的时候调用。这个方法一般用来做一些初始化的事情。比如获取用户信息、获取  
 
 
 历史缓存信息、获取小程序打开来源等。  
 
 
 2.  
 参数:  
 
 
 |  
 参数  
 |  
 类型  
 |  
 说明  
 | | :--- | :--- | :--- | | path | String |  
 打开小程序的路径  
 | | query | Object |  
 打开小程序的 
 query |  
 
 
 | scene | Number |  
 打开小程序的场景值  
 | | shareTicket | String | shareTicket 
 ,详见 获取更多转发信息  
 | |  
 
 
 referrerInfo | Object |  
 当场景为由从另一个小程序或公众号或 
 App 
 打开时,返回此字段  
 | | referrerInfo.appId |  
 
 
 String |  
 来源小程序或公众号或 
 App 
 的  
 appId 
 ,详见下方说明  
 | | referrerInfo.extraData | Object |  
 来源小程序传  
 
 
 过来的数据, 
 scene=1037 
 或 
 1038 
 时支持  
 |  
 
onShow(options):
 
 1.  
 调用时机:小程序启动,或从后台进入前台显示时调用。如果想要在小程序每次进入到前台的时候都执行一些  
 
 
 事情,那么可以把代码放在这个里面。比如一些实时动态更改的数据,用户每次进来都要从服务器更新,那么  
 
 
 我们就可以在这个里面做。  
 
 
 2.  
 参数:同  
 onLoad  
 。  
 
onHide():
 
 1.  
 调用时机:小程序被切换到后台(包括微信自身被切换到后台或者小程序暂时被切换到后台时)。可以在这个  
 
 
 方法中做一些数据的保存。  
 
 
 2.  
 参数:无。  
 
onError(String error):
 
 1.  
 调用时机:小程序发生脚本错误,或者  
 api  
 调用失败时触发。在小程序发生错误的时候,会把错误信息发送到  
 
 
 这个函数中,所以可以在这个函数中做一些错误收集。  
 
 
 2.  
 参数: 
 error 
 。  
 
onPageNotFound(Object):
 
 1.  
 调用时机:小程序要打开的页面不存在时触发。一般在代码更新的时候,有些页面被删除了,但是其他地方没  
 
 
 有改过来的情况下会发生这种情况,或者一些活动页面,活动结束后被关掉了。也可以在这个里面做一些错误  
 
 
 的收集和页面的重新跳转。  
 
 
 2.  
 参数: | 字段  
 |  
 类型  
 |  
 说明  
 | | :--- | :--- | :--- | | path | String |  
 不存在页面的路径  
 | | query | Object |  
 打开不存在页面的  
 
 
 query | | isEntryPage | Boolean |  
 是否本次启动的首个页面(例如从分享等入口进来,首个页面是开发者配置  
 
 
 的分享页面)  
 |  
 
 
 3.  
 开发者可以在  
 onPageNotFound  
 回调中进行重定向处理,但必须在回调中同步处理,异步处理(例如  
 
 
 setTimeout  
 异步执行)无效。示例代码:  
 
App({onPageNotFound(res) {wx.redirectTo({url: 'pages/...'}) // 如果是 tabbar 页面,请使用 wx.switchTab}})
 
 4.  
 注意:如果开发者没有添加  
 onPageNotFound  
 监听,当跳转页面不存在时,将推入微信客户端原生的页面不  
 
 
 存在提示页面。 如果  
 onPageNotFound  
 回调中又重定向到另一个不存在的页面,将推入微信客户端原生的页  
 
 
 面不存在提示页面,并且不再回调  
 onPageNotFound 
 。  
 
getApp():
 
 获取当前的  
 app  
 对象。一般在其他的  
 page  
 页面中调用。有以下两个注意点:  
 
 
 1.  
 不要在定义于  
 App()  
 内的函数中调用  
 getApp()  
 ,使用  
 this  
 就可以拿到  
 app  
 实例。  
 
 
 2.  
 通过  
 getApp()  
 获取实例之后,不要私自调用生命周期函数。  
 
Page对象
 
  详情请参考: 
  https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page.html  
 
 
 Page对象作用:
 
  Page(Object)  
  函数用来注册一个页面。接受一个  
  Object  
  类型参数,其指定页面的初始数据、生命周期回调、事件  
 
 
  
  处理函数等。  
 
 
  
  数据渲染:  
 
 
  
  需要放在模板中进行渲染的数据,需要放在  
  Page  
  对象的  
  data  
  属性中。示例代码如下:  
 
 
 Page({data: {person: {username: " 知了课堂 " ,age: 18}}})
<view></view>
 
  如果以后想要修改  
  data  
  中的值,应该使用  
  setData  
  方法。  
  setData  
  函数用于将数据从逻辑层发送到视图层(异  
 
 
  
  步),同时改变对应的  
  this.data  
  的值(同步)。注意事项:  
 
 
  
  1.  
  直接修改  
  this.data  
  而不调用  
  this.setData  
  是无法改变页面的状态的,还会造成数据不一致。  
 
 
  
  2.  
  放到  
  data  
  中的值,只能使用可以  
  JSON  
  序列化的:字符串,数字,布尔值,对象,数组。否则将不会渲染。  
 
 
  
  3.  
  其中  
  key  
  可以以数据路径的形式给出,支持改变数组中的某一项或对象的某个属性,如  
 
 
  
  array[2].message  
  ,  
  a.b.c.d  
  ,并且不需要在  
  this.data  
  中预先定义。  
 
 
 Page生命周期函数:
onLoad(Object query):
 
  页面加载时触发。一个页面只会调用一次,可以在  
  onLoad  
  的参数中获取打开当前页面路径中的参数。一般建议在  
 
 
  
  这个函数中做一些页面的数据初始化工作。  
 
 
 onShow():
 
  页面显示 
  / 
  切入前台时触发。比如新推入了一个新的页面,那么原来的页面就处于后台,这时候如果把新页面又移  
 
 
  
  除掉,那么下面的页面就会调用  
  onShow  
  方法。  
 
 
 onReady():
 
  页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互了。对界面内  
 
 
  
  容进行设置的  
  API  
  如  
  wx.setNavigationBarTitleText  
  ,比较合适在这个里面执行。  
 
 
 onHide()
 
  页面隐藏 
  / 
  切入后台时触发。如  
  navigateTo  
  或底部  
  tab  
  切换到其他页面,小程序切入后台等。  
 
 
 onUnload()
 
  页面卸载时触发。如  
  redirectTo  
  或  
  navigateBack  
  到其他页面时。  
 
 
  
  路由:  
 
 
  
  在小程序中所有页面的路由全部由框架进行管理。  
  getCurrentPages()  
  可以获取当前状态下的页面栈。 
 
 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号