小程序项目中页面常用的三种跳转方式
wx.switchTab // 切换到tabbar页面
wx.navigateTo // 进入指定页面(非tabbar页面)正常页面栈
wx.redirectTo // 重定向到执行页面清空页面栈,无法通过左上角返回箭头或者navigateBack返回上一页
需求:
A页面加载的时候会执行一部分流程,可以从A页面跳转到B页面,B页面通过左上角返回到A页面的时候需要执行另一部分流程,跟A页面正常的加载流程有冲突,要分开处理,所以需要判断页面是从B页面navigateBack回来的,还是通过其他途径进入的
A页面逻辑
在A页面的data中定义一个变量isFromB(是否从B页面返回,变量名称可以自定义),默认值为false
A页面的onShow中
if(this.isFromB) {
从B页面返回需要执行的逻辑部分
} else {
正常途径进入A页面,需要执行的逻辑部分
}
B页面逻辑
let pages = getCurrentPages();
let prevPage = pages[ pages.length - 2 ];
prevPage.$vm.isFromB = true
uni.navigateBack();