小程序页面栈的管理

本文探讨了小程序页面栈管理,每个页面作为Page对象存在于栈中,最多容纳5个页面。理解这一机制对于页面跳转及参数传递至关重要。通过getCurrentPages()获取页面栈,可以对任意页面进行操作。例如,A页面调用wx.navigateTo转到B页面,B页面能获取到A页面的Page对象,进而使用setData方法传递参数,并通过wx.navigateBack返回A页面,实现参数的传递效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小程序的每个页面都是一个page对象,拿到page对象就可以操作他的方法以及属性,page是放到页面栈里面的并且最多有5个,了解小程序页面栈的管理机制有助于我们进行页面跳转参数的传递,以及在目的页面改变原页面的属性达到传参的效果:

路由方式                                  页面栈
初始化新页面入栈
打开新页面(wx.navigateTo({ url: '/pages/st_suggest/st_suggest' });)新页面入栈
页面重定向 (wx.redirectTo({url:'/pages/home/home'}))当前页面出栈,新页面入栈
页面返回(wx.navigateBack())页面不断出栈,直到目标返回页,新页面入栈
Tab 切换(底部tab切换)页面全部出栈,只留下新的 Tab 页面
重加载页面全部出栈,只留下新的页面

通过getCurrentPages();获取页面栈内所有的Page对象,去某一个Page对象即可操作其方法和属性。

比如页面跳转传参:

1、A调用wx.navigateTo({ url: '/pages/B/B' });  跳转到B页面,

2、B页面从栈里面取A页面的Page对象: 

var currPage = pages[pages.length - 1];   //当前页面,B页面Page对象
        var prevPage = pages[pages.length - 2];  //上一个页面,A页面的Page对象 

3、调用setData传参:prevPage.setData({name:"三三" });

4、调用wx.navigateBack();即可返回到上一个页面,此时即A页面



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值