微信小程序學習之navigate(1)navigateTo方法與navigateBack方法對於page生命周期不同的觸發影響


小程序的每個頁面都有一些生命周期,每個生命周期由分別有着不同的生命周期鈎子函數。而我們的業務邏輯寫在這些生命周期的鈎子函數中,那么弄清楚那種情形下會觸發那些生命周期鈎子函數就非常重要了

先上一段代碼

Page({
    data: {
        banner: [
            "../../assets/img/banner.jpg",
            "../../assets/img/banner2.jpg",
            "../../assets/img/banner3.jpg",
        ],
        list:[1,2,3,4,5,6,7],
    },
    //頁面加載
    onLoad: function () {
      console.log("觸發首頁加載周期")
        
    },
    //頁面渲染
    onReady() {
      console.log("觸發首頁頁面渲染周期")
      
    },
    //頁面顯示
    onShow() {
      console.log("觸發首頁頁面顯示周期")
      // wx.navigateTo({
      //   url: "../test/test",
      // })
    },
    //頁面隱藏
    onHide() {
        console.log("觸發首頁頁面隱藏周期");
    },
    login(){
    }
})

上面這一坨就是頁面常用的生命周期鈎子函數,還有一些沒有寫出來,想要了解的可以去微信的官方文檔看看:https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.redirectTo.html

第一種情況

當頁面首次加載的時候觸發的生命周期有

離開當前頁面的時候

第二種情況

當其他頁面使用navigateTo 回到當前頁面時

使用

wx.redirectTo 回到當前頁面效果與wx.navigateTo相同
wx.reLunch 回到當前頁面效果與上相同,但是會觸發 發生跳轉的頁面的 頁面卸載鈎子函數

第三種情況

當其他頁面使用navigateBack回到當前頁面時 

就只會觸發 onShow()生命周期函數 switchTab與其相同 但是switchTab只能條tabbar頁面

所以每次進入頁面都要觸發的業務邏輯個人推薦的寫法是使用navigateTo而非navigateBack

 


免責聲明!

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



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