谈谈微信小程序中的页面栈

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谈谈微信小程序中的页面栈相关的知识,希望对你有一定的参考价值。

参考技术A 1.wx.navigateTo跳非tabbar页面页面栈会加1,跳到tabbar页面页面栈自动清空,只剩下一个就是当前tabbar页面
2.还有官网说的不能跳tabbar页面的方法是真的不能跳,用了会报错,跳不了
3.页面栈是记录除tabbar之外的页面的跳转,一到tabbar就会清空页面栈,一般从tabbar往非tabbar走只会用到3,4个页面栈的层级
4.微信小程序页面栈满了十个之后会怎么样?会跳不动会报错,如下图一
5.使用wx.redirectTo不会增加页面栈,入下图二

const pages = getCurrentPages();//获取当前的页面栈
console.log("pages,", pages)
const prevPage = pages[pages.length - 1];//当前的page
prevPage.onPullDownRefresh();//调用此页面的方法

微信小程序 返回上一页面时实现上一页面数据刷新(页面栈)

问题:

从A页面跳转到b页面后,再从b页面返回到a页面,同时刷新a页面的数据


解决方案:

页面B:

var pages = getCurrentPages();  //当前页面栈

if (pages.length > 1) 

var beforePage = pages[pages.length - 2]; //获取上一个页面实例对象(a页面)

var currPage = pages[pages.length - 1];  // 当前页面,若不对当前页面进行操作,可省去(b页面)

beforePage.setData(       //如果需要传参,可直接修改A页面的数据,若不需要,则可省去这一步

........

)

beforePage.changeData();//触发父页面中的方法


search.js


页面A:

changeData: function () 

this.onLoad(); //最好是只写需要刷新的区域的代码


index.js


以上是关于谈谈微信小程序中的页面栈的主要内容,如果未能解决你的问题,请参考以下文章

谈谈我对微信小程序的理解

微信小程序WXML页面如何获取全局变量值

微信小程序入门(四):页面数据展示

如何使用微信小程序中的按钮事件实现界面跳转

获取微信小程序URL参数

微信小程序如何修改data中的数组值并刷新到页面