codecamp

支付宝小程序框架 页面·getCurrentPages方法

getCurrentPages() 方法用于获取当前页面栈的实例,返回页面数组栈。第一个元素为首页,最后一个元素为当前页面。

框架以栈的形式维护当前的所有页面。路由切换与页面栈的关系如下:

路由方式 页面栈表现
初始化 新页面入栈
打开新页面 新页面入栈
页面重定向 当前页面出栈,新页面入栈
页面返回 当前页面出栈
Tab 切换 页面全部出栈,只留下新的 Tab 页面

下面代码可以用于检测当前页面栈是否具有 5 层页面深度。

if (getCurrentPages().length === 5) {
      my.redirectTo({
        url: '/pages/logs/logs'
      });
    } else {
      my.navigateTo({
        url: '/pages/index/index'
      });
    }

注意: 不要尝试修改页面栈,会导致路由以及页面状态错误。

常见问题

Q:getCurrentPages 方法怎么获取页面路径?

A:JSON.stringify(getCurrentPages()[N].proto.route),可以获取到页面路径(N 为页面数组栈中页面对象所在序号,最大值为当前页)。

Q:getCurrentPages 方法可以获取到参数吗?

A:不可以,只能获取页面栈,无法获取参数。

支付宝小程序框架 页面·运行机制
支付宝小程序框架 页面·常见问题
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }