微信小程序-页面路由及页面生命周期

一、路由

路由常用跳转方式有三种:

1、wx.navigateTo(Object object)

保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层。

页面跳转之后,会有一个返回按钮,新页面覆盖在当前页面

请添加图片描述

2、wx.reLaunch(Object object)

关闭所有页面,打开到应用内的某个页面

页面跳转之后,会有一个home按钮,之前路由列表里面的所有页面都被销毁请添加图片描述

3、wx.redirectTo(Object object)

关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。

页面跳转之后,会有一个home按钮,跳转的其实页面会被新页面替换掉

二、页面生命周期请添加图片描述

官网链接:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page-life-cycle.html

由于可以看到,微信小程序页面启动时,会开启两个线程:View Thread 和 AppService Thread

View Thread 初始化中向 AppService Thread 发通知,而AppService Thread执行完 onLoad 和 onShow后便等待通知的到来,收到通知后,数据发送给View Thread ,然后执行onReady。

在页面的生命周期函数中,打印log:

 /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log('onLoad 生命周期函数--监听页面加载')
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    console.log('onReady 生命周期函数--监听页面初次渲染完成')
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    console.log('onShow 生命周期函数--监听页面显示')
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    console.log('onHide 生命周期函数--监听页面隐藏')
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    console.log('onUnload 生命周期函数--监听页面卸载')
  },

运行小程序,控制台输出如下:
请添加图片描述
由此可见,页面周期的生命周期函数执行顺序:
onLoad --> onShow --> onReady

实验:路由跳转

新建两个页面,分别是page2、page3

实验一

当动第一个页面navigateTo到page2时,查看控制台请添加图片描述

触发可onHide方法;此时返回到首页:请添加图片描述
会发现onShow又重新被触发

实验二

更改跳转方式:
当动第一个页面reLaunch到page2时,查看控制台

请添加图片描述
会发现首页已经被销毁了

此时点击由上面的按钮,退到首页,控制太打印如下:
请添加图片描述
会发现,page2销毁,首页又被创建出来了

重新跑一遍程序:执行 首页reLaunch-> page2 reLaunch->page3,查看控制太如下:
请添加图片描述
会发现 page2到page3的时候,page2也同样被释放了

重新跑一遍程序:执行 首页 navigateTo-> page2 reLaunch->page3,查看控制太如下:请添加图片描述
可以看到 page2 -> page3时,首页和page2都被释放了,由此可以证实官方描述:关闭所有页面,打开到应用内的某个页面。

实验三

更改跳转方式:
执行 首页navigateTo-> page2 ->page3,查看控制太如下:请添加图片描述
可以看到 page2 -> page3时,只有page2被释放了,首页并没有释放,由此可以证实官方描述:关闭当前页面,跳转到应用内的某个页面。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值