微信小程序中页面跳转之三种方法wx.navigateTo(),wx.navigateBack()与wx.redirectTo()

微信小程序wx.navigateTo()与wx.navigateBack()讲解

小程序页面的实例使用栈的数据结构存储,微信小程序能在栈中相对高层某个页面调用其余相对低层的页面实例的方法。小程序

小程序三种页面跳转API :微信小程序

  • wx.navigateTo 不会将旧页面出栈,会将新页面入栈。(栈内元素个数增长,栈内元素5个时,不能再跳转);
  • wx.navigateBack 则是将页面栈最后一个元素出栈,所以倒数第二个元素会成为最后一个元素,即变成当前页面;也能够连续出栈好几个元素(大于栈内元素的个数则返回首页)返回栈中的某个页面;
  • wx.redirectTo 会将栈顶的旧页面出栈,再将须要跳转到的页面入栈(栈内元素个数不变)。

结合下面一个例子对上面的内容的理解:微信

有一个小程序包含 A、B、C、D 四个页面,A 为首页。小程序启动后,在 A 页面中,此时栈中有一个元素A,咱们经过 navigateTo 跳转到 B 页面,而后在 B 页面中再经过 navigateTo 跳转到 C 页面。此时页面栈中就会包含三个元素,分别为 A、B、C 三个页面。而此时若是经过 redirectTo 跳转到 D 页面,redirectTo 会将栈顶页面出栈,即将 C 页面出栈,再将 D 页面入栈,这时候,页面栈中的元素则会变为 A、B、D。此时若是在 D 页面调用 navigateBack,会发现不是返回 C 页面,而是返回到了 B 页面。固然也能够直接在D页面返回A,设置navigateBack的delta参数为2。

 

数据结构