热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序笔记<五>页面管理及生命周期(route)——getCurrentPages()

在小程序中所有页面的路由全部由框架进行管理,而框架以栈的形式维护了当前的所有页面。当发生路由切换时,页面栈的表现:getCurrentPages()用于获取当前页面
在小程序中所有页面的路由全部由框架进行管理,而框架以栈的形式维护了当前的所有页面。
当发生路由切换时,页面栈的表现:
getCurrentPages() 用于获取当前页面栈的实例,可以把 getCurrentPages() 看做当前小程序所有页面的集合。该集合的第一个元素为首页,最后一个元素为当前页。
ps:不要尝试修改页面栈,会导致路由以及页面状态错误。
// index/index.js ================================
Page({
  data:{"id":1,"name":"mirage"},
  onShow:function(){
    console.log(getCurrentPages().length);  // 输出 1
    console.log(getCurrentPages()[0].data); 
    // 输出 {id: 1, name: "mirage", __webviewId__: 24}
    console.log(getCurrentPages()[1]);
    // undefined
  },
  goto:function(){
    wx.navigateTo({
      url: "../info/info"
    })
  }
})

// info/info.js ==================================
Page({
  data: { "id": 2, "name": "fox"},
  onLoad: function (req) {
    console.log(getCurrentPages().length);  // 输出 2
    console.log(getCurrentPages()[0].data); 
    // {id: 1, name: "mirage", __webviewId__: 28}
    console.log(getCurrentPages()[1].data); 
    // {id: 2, name: "fox", __webviewId__: 29}
  }
})

 getCurrentPages() 可以获取小程序中每个页面的Page实例。

Page() 中 data 输出的 __webviewId__ 每次打开页面该值为0,每当页面重新加载 __webviewId__ 值 +1,且该值不可被手动修改。所以 __webviewId__  可以查看页面被加载的次数。

以下是官方提供的路由的触发方式以及页面生命周期函数表

 关于 Tab 切换对应的页面生命周期;

案例场景  ==>  A、B 页面为 Tabbar 页面,C 是从 A 页面打开的页面,D 页面是从 C 页面打开的页面;

 

注意:

  1. navigateTo, redirectTo 只能打开非 tabBar 页面。
  2. switchTab 只能打开 tabBar 页面。
  3. reLaunch 可以打开任意页面。
  4. 页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。
  5. 调用页面路由带的参数可以在目标页面的onLoad中获取。
 

推荐阅读
  • 微信小程序中如何实现轮播图
    这篇文章主要介绍了微信小程序中如何实现轮播图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带 ... [详细]
  • 微信小程序地图实现展示线路的方法
    这篇文章将为大家详细讲解有关微信小程序地图实现展示线路的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所 ... [详细]
  • 微信小程序实现星级评分与展示
    这篇文章主要为大家详细介绍了微信小程序实现星级评分与展示,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • Android Studio中的IBM MobileFirst Compile问题 - IBM MobileFirst Compile in Android Studio Issue
    IbuiltaMultipageapplicationbyusingIBMMobileFirst,accordingto据我所知,我使用IBMMobileFirst构建了一个 ... [详细]
  • remote 移除_remote模块的使用(四)
    微信公众号:[猫十二的日常],欢迎留言和指出问题a在electron中的一些模块,它是区分进程的,有些模块只能是主进程可以使 ... [详细]
  • UIWebView拦截URL原理:js通过加载url方式被webView拦截,这时候看如果是自己定义的scheme请求就不让webView继续加载请求,否则就继续加载请求。webV ... [详细]
  • 微信小程序实战之菜谱小程序
    最近突发奇想,想要自己搞个小程序玩儿玩儿,但是鉴于自己是搞后端服务器出身,对于偏前端的微信小程序开发实在是一知半解,尤其是对于css类样式相关,更是无从下手,于是乎,只能从晚上找了 ... [详细]
  • 微信小程序实现简易计算器功能_javascript技巧
    这篇文章主要为大家详细介绍了微信小程序实现简易计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的 ... [详细]
  • 本文讨论了编写可保护的代码的重要性,包括提高代码的可读性、可调试性和直观性。同时介绍了优化代码的方法,如代码格式化、解释函数和提炼函数等。还提到了一些常见的坏代码味道,如不规范的命名、重复代码、过长的函数和参数列表等。最后,介绍了如何处理数据泥团和进行函数重构,以提高代码质量和可维护性。 ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • 微信小程序API音频-暂停播放是千自学中一篇关于微信小程序的文章简介:wx.pauseVoice(Objectobject)从基础库 1.6.0 开始,本接口停止维护,请使用 wx.createInnerAudioContext 代替暂停正在播放的语 ... [详细]
  • 微信小程序新手教程wx.request(object) API
    微信小程序新手教程wx.request(object)API,本篇默认已经成功安装微信小程序工具,来和小编一起看看吧wx.request(object)API这里通过干活集中营的A ... [详细]
  • 以前都是用php开发微信公众号,很少有人用java来做,我用java来做了一个微信小程序的后台,前端是一个微信商城,没有开发完,但是已经封装了取得openid,wechat-master目录 ... [详细]
author-avatar
叶毒手_938
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有