微信小程序page的生命周期,下图摘自微信小程序官方文档。左侧列为视图,右侧为服务。
生命周期函数有以下几个:
onLoad: 页面加载
一个页面只会调用一次。
接收页面参数 获取参数为options.data,其他获得参数都为this.options.data
onShow: 页面显示
每次打开页面都会调用一次。
onReady: 页面初次渲染完成
一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互。
onHide: 页面隐藏
当navigateTo或底部tab切换时调用。
onUnload: 页面卸载
当redirectTo或navigateBack的时候调用。
从图中可以看到服务线程第一次打开时,调用onload()接着调用onshow(),随后接受到视图层的渲染调用onready(),当从跳转或者底部tab切换,执行onhide(),当再次会回到该页面时执行onshow(),最后销毁该页面时,也就是该页面出栈,执行onunload()。
最后顺便提一下js中var that = this 这句话的作用
在js中,this
代表着当前的对象
,它在程序中随着执行的上下文随时会变化。在回调函数对象中当前对象已经发生了变化。所以已经不是原来的页面对象了。自然就没有了data
属性,所以该语句的作用就是复制一份当前的对象,以便回调函数中的操作。