前言:本人是一个初学者,也是第一次写博客,敲键盘的时候还不知道发布后是什么效果,希望内容给其他初学的同学一点帮助,同时加深自己的理解。这篇随笔讲的是Page页面的生命周期,在开发中是基础中的基础,很容易理解。

  先给出直达官方的链接:

1、小程序页面生命周期图:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page-life-cycle.html

2、注册页面生命周期的接口:https://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html

  可以直接参考第二个链接,下面是我的测试,使用官方给的hello,world示例,为了验证加入了一个nextPage页面。

log.js

 Page({
data: {
logs: []
},
onLoad: function (options) {
// 页面创建时执行
console.log("onLoad====页面创建时执行")
},
onShow: function () {
// 页面出现在前台时执行
console.log("onShow====页面出现在前台时执行")
},
onReady: function () {
// 页面首次渲染完毕时执行
console.log("onReady====页面首次渲染完毕时执行")
},
onHide: function () {
// 页面从前台变为后台时执行
console.log("onHide====页面从前台变为后台时执行")
},
onUnload: function () {
// 页面销毁时执行
console.log("onUnload====页面销毁时执行")
},
onPullDownRefresh: function () {
// 触发下拉刷新时执行
console.log("onPullDownRefresh====触发下拉刷新时执行")
},
toNextPage:function(){
wx.navigateTo({
url: '../nextPage/nextPag',
success: function (res) { console.log("组件调用success")},
fail: function (res) { console.log("组件调用fail")},
complete: function (res) { console.log("组件调用complete")},
})
}
})

log.json  (enablePullDownRefresh是开启下拉刷新)

 {
"navigationBarTitleText": "测试页面生命周期",
"usingComponents": {},
"enablePullDownRefresh": true,
"backgroundTextStyle": "dark"
}

log.wxml

 <view bindtap="toNextPage" class="log">点我跳转到下一个页面</view>
  • 当小程序进入index页面,初始化完成,此时点击头像触发事件处理函数,进入log页面,看打印结果:

  • 当点击工具栏“切后台”时,触发onHide,切前台触发onShow:

  • 当点击“点我跳转到下一个页面”时,触发log页面的onHide与onShow:

    额外补充,当调用接口时,成功、失败与完成的回调函数将会这样执行:

    1.   成功:success  ==> complete
    2.   失败:fail  ==> complete
  • 当点击log页面的返回按钮再进log页面,触发的是什么呢?

总结:

  基本上需要注意的就是这些了,再次总结一下容易理解错的地方:

1、页面生命周期和小程序App的生命周期稍有不同,但原理类似,有需要可以看一下官方给出的示例再自己进行测试。https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html

2、当进入页面时生命周期函数的调用顺序  

  (1)先执行onLoad(页面创建时执行)  

  (2)再执行onShow(页面出现在前台时执行)  

  (3)最后执行onReady(页面首次渲染完毕时执行)

3、点击页面子页面或在该页面切后台,触发的是onHide;子页面返回该页面或切回前台触发的是onShow(可页面周期内可多次);

4、点击页面父页面会将此页面销毁触发onUnload(页面销毁时执行),通过父页面再次点进该页面时会重新加载页面,依次触发onLoad、onShow、onReady;

5、(未验证)页面生存过程中,onLoad只触发一次,onReady也只触发一次,只是先后不同。

6、其他还有一些生命周期方法,需要在特定条件下执行的。比如:页面缩放时、下拉刷新时,就不一一列举了,可以从前面的官方文档中查找到。

  页面生命周期实际上在开发中比较常用,以适应不同的功能需求,作为学习者,我们也需要多加注意这些问题,养成良好的思维习惯。

测试微信小程序页面的生命周期的更多相关文章

  1. 微信小程序--页面的生命周期和参数传递

    页面跳转: 1.函数 点击事件设置bindtap然后在本页面 js 设置函数 redirectTo:关闭当前页,跳转到指定页:   ( unload) navigateTo:保留当前页,跳转到指定页: ...

  2. 【Taro全实践】Taro在微信小程序中的生命周期

    一.Taro的本身生命周期 生命周期componentWillMount在微信小程序中这一生命周期方法对应页面的onLoad或入口文件app中的onLaunch componentDidMount在微 ...

  3. 微信小程序:应用生命周期

    小程序的生命周期分为应用生命周期和页面生命周期. 应用指的是一个文件,是小程序的入口文件app.js,入口文件最外层方法名称是App,页面的js文件最外层是page,组件的js文件的最外层是compo ...

  4. 微信小程序page的生命周期和音频播放及监听

    一.界面的生命周期 /** * 监听页面加载, * 页面加载中 */ onLoad:function(){ var _this = this console.log('index---------on ...

  5. 使用Appium 测试微信小程序和微信公众号方法

    由于腾讯系QQ.微信等都是基于腾讯自研X5内核,不是google原生webview,需要打开TBS内核Inspector调试功能才能用Chrome浏览器查看页面元素,并实现Appium自动化测试微信小 ...

  6. 微信小程序-页面跳转与参数传递

    QQ讨论群:785071190 微信小程序页面跳转方式有很多种,可以像HTML中a标签一样添加标签进行跳转,也可以通过js中方法进行跳转. navigator标签跳转 <view class=& ...

  7. Appium之测试微信小程序

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:Oschina.云+社区.知乎等各大平台都有. 目录 一.往期回顾 二.测试微信小程序 1.准备工作 2.操作步骤 3.注意 4.强制设置安卓的进程 ...

  8. [转] 微信小程序页面间通信的5种方式

    微信小程序页面间通的5种方式 PageModel(页面模型)对小程序而言是很重要的一个概念,从app.json中也可以看到,小程序就是由一个个页面组成的. 如上图,这是一个常见结构的小程序:首页是一个 ...

  9. 微信小程序页面跳转方法总结

    微信小程序页面跳转目前有以下方法(不全面的欢迎补充): 1. 利用小程序提供的 API 跳转: // 保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面.// 注 ...

随机推荐

  1. Linux shell中自动完成登录

    在写shell脚本时,需要登录到不同的服务器上执行相关命令,在未建立信任之前如何批量操作. 1.ssh 首次登录服务器时会提示RSA key fingerprint输入yes/no,可以通过下面的方法 ...

  2. CF 82 D.Two out of Three

    前言 全网唯一不同题解 设 \(f[i][j]\) 表示第 \(i\) 次选取留下来的数是 \(k\) 的最小花费 枚举前面的留下来的点 \(k\) 当前能留下的点只有 \((2*i),(2*i+1) ...

  3. 为按钮绑定实现js跳转

    页面代码 <button type="button" class="btn btn-xs btn-info" id="add" nam ...

  4. javaSE之运行时异常和编译时异常

    运行时异常继承自RuntimeException; package foundationEnhance; public class Person { private int age; public P ...

  5. 028:with标签使用详解

    with标签使用详解: 1.在模板中享用使用变量,可以通过  with  语句实现: 2.with  有两种用法,具体情况如下 ( 包括注意事项 ) : index.html: <p>wi ...

  6. FPGA设计中遇到的奇葩问题之“芯片也要看出身”

    FPGA设计中遇到的奇葩问题之“芯片也要看出身”(一) 昨夜西风凋碧树.独上高楼,望尽天涯路 2000年的时候,做设计基本都是使用Xilinx公司的Virtex和Virtex-E系列芯片.那时候Alt ...

  7. HTML计算机代码元素

    计算机代码 1 2 3 4 5 6 var person = {     firstName:"Bill",     lastName:"Gates",     ...

  8. 使用ant编译Android APK

    ANT —— Apache Ant is a Java library and command-line tool that help building software. 1. 部署ANT的使用环境 ...

  9. 笨办法学Python(learn python the hard way)--练习程序11-20

    #ex11.py1 print("How old are you?",end=''), age = input() print("How tall are you?&qu ...

  10. php面试专题---20、MySQL的安全性考点

    php面试专题---20.MySQL的安全性考点 一.总结 一句话总结: 还是得多看视频,教程看的浮光掠影,容易get不到重点:比如预处理防sql注入之前是挺熟,后面就忘记了,而且看文章get不到点 ...