一、获取页面栈
可通过getCurrentPages()方法获取到页面栈数组,让我们打印出来看看吧。
代码:
// 1. 获取当前页面栈实例(此时最后一个元素为当前页)
let pages = getCurrentPages()
// 2. 上一页面实例
// 注意是length长度,所以要想得到上一页面的实例需要 -2
// 若要返回上上页面的实例就 -3,以此类推
let prevPage = pages[pages.length -2]
console.log(pages)
console.log("---------------")
console.log(prevPage)
控制台打印结果
通过控制台打印出的信息,可以看到页面的一些基础信息,比如:route、fullPath,还有页面中的参数值。
二、通过页面栈调用之前页面的方法
调用自定义方法。场景:假设当前有页面A、页面B,目前是已经从A页面跳转到B页面了,此时需要从B页面放回A页面,并且调用A页面中的test()方法。
B页面
// 3. 给A页面实例绑定test()方法和参数(注意是$vm)
let str = 'Hello'
prevPage.$vm.test(str)
// 4. 返回A页面
uni.navigateBack({
delta: 1 // 返回的页面数
})
A页面
test(str){
console.log(str)
}
调用onLoad()方法
B页面
let pages = getCurrentPages()
let page = pages[pages.length - 2]
uni.navigateBack({
delta: 1, //返回的页面数
success: function() {
page.onLoad(); //执行上个页面的onLoad()方法
}
});