首先要了解什么是页面栈------------
框架以栈的形式维护了当前的所有页面。 当发生路由切换的时候,页面栈的表现如下:
| 路由方式 | 页面栈表现 |
|---|---|
| 初始化 | 新页面入栈 |
| 打开新页面 | 新页面入栈 |
| 页面重定向 | 当前页面出栈,新页面入栈 |
| 页面返回 | 页面不断出栈,直到目标返回页 |
| Tab 切换 | 页面全部出栈,只留下新的 Tab 页面 |
| 重加载 | 页面全部出栈,只留下新的页面 |
开发者可以使用
getCurrentPages()函数获取当前页面栈,得到的是一个数组对象数组中第一个元素为首页,最后一个元素为当前页面
业务场景:
当前页面返回后,刷新上个页面的列表数据
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
// 获取当前页面
const pages = getCurrentPages();
// 获取上一级页面
const beforePage = pages[pages.length - 2];
beforePage.setData({ //直接修改上个页面的数据(可通过这种方式直接传递参数)
backRefresh: true //函数封装,传值为true时调接口刷新页面
})
},
全局隐藏返回箭头
//在app.json中全局设置,则每个页面会隐藏返回箭头
"window":{
"navigationStyle":"custom"
}
----------------------------------------------
//当前页面
onShow:function(){
wx.hideHomeButton(); //隐藏返回主页按钮
}
本文介绍了页面栈的概念及其在路由切换中的行为,包括初始化、打开新页面、重定向、返回和Tab切换等情况。通过getCurrentPages()函数获取页面栈,并演示了在页面卸载时如何更新上一页面的数据以实现返回时刷新列表。此外,还讨论了如何全局隐藏返回箭头以及在特定页面隐藏返回主页按钮的操作。
642

被折叠的 条评论
为什么被折叠?



