微信小程序頁面返回


1.回退上一級頁面 beforePage

1.返回頁面同時需要刷新數據

var pages = getCurrentPages();//當前頁面
var beforePage = pages[pages.length-2];//前一頁
wx.navigateBack({
  success: function() {
    beforePage.onLoad(); // 執行前一個頁面的onLoad方法
  }
});

2.回退3級頁面 wx.navigateBack
當我們頁面跳轉到三級頁面后點擊左上角的返回按鈕,能夠直接返回到首頁

1.wx.navigateBack 這個方法可以返回界面 在 onUnload 觸發的時候可以執行。但是我發現這個方法確實可以回到首頁,但是他會一個一個界面返回,不能直接返回到首頁

onUnload:function(){
  wx.navigateBack({
    delta:9
  })
}

2.正常 A -> B -> C 都是通過 wx.navigateTo 跳轉的,所以 wx.navigateBack 只能返回上一界面,如果要返回到A 界面就會出現 C -> B -> A 的效果。

如果想實現 A -> B -> C 當 C 點擊返回時, 實現直接 C -> A 這種效果 就只能
A -> B 通過 wx.navigateTo 跳轉 B -> C 通過 wx.redirectTo 跳轉.跳轉觸發后 B 頁面就會被銷毀, C 頁面再返回 wx.navigateBack 就會直接到 A 了。

wx.redirectTo({
  url:url
})

3.回退4級或者更多級頁面,wx.reLaunch
onUnload() {
  console.log('返回按鈕')
  wx.reLaunch({
    url: '../../pages/index'
  })
}

4.返回多級頁面。同時刷新
比如我們現在希望在第四級頁面返回首頁后刷新
我們需要在onShow方法中調用onLoad()方法

1.頁面需要帶參進來的情況
onShow() {
this.onLoad({uid:this.$parent.globalData.enterid})
}

2.頁面不需要帶參的情況
onShow() {
  this.onLoad()
} // 只在Page中存在的頁面生命周期函數

注意:頁面跳轉最好不要帶參跳轉,采用全局變量比較好。
比如:從 A 頁面到 B 頁面帶的對象 c = {name:'小明',age:'18'},
從 AA 頁面到 B 頁面帶的對象 d = {pname:'小紅',page:'17'},

對象內部的字段名稱不一樣,B頁面在拿到該對象后無法解析
在全局中定義e ,在 A 頁面中跳轉前設置

self.$parent.globalData.e.name = c.name;
self.$parent.globalData.e.age = c.age;
wx.navigateTo({
  url: 'B'
})

在全局中定義e ,在 AA 頁面中跳轉前設置

self.$parent.globalData.e.name = d.pname;
self.$parent.globalData.e.age = d.page;
wx.navigateTo({
  url: 'B'
})

在B頁面中onLoad()方法中

this.obj = this.$parent.globalData.e,
console.log(obj.name);
console.log(obj.age);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM