2

小程序页面栈的管理

小程序的每个页面都是一个page对象,小程序中页面栈最多十层,了解小程序页面栈的管理机制有助于我们进行页面跳转参数的传递,以及在目的页面改变原页面的属性达到传参的效果:

clipboard.png

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

比如页面跳转传参:

1.A调用wx.navigateTo({ url: '/pages/B/B' });  跳转到B页面,此时的动作是push(入栈)一个页面,其效果如下:

clipboard.png

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页面,这是一个页面出栈(pop)的过程;
5.调用wx.redirectTo();这是一个原页面出栈,新页面入栈的过程;


MangoGoing
774 声望1.2k 粉丝

开源项目:详见个人详情