小程序页面栈的管理

小程序的每个页面都是一个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页面



你可能感兴趣的:(微信小程序)