uni-app返回上一級,頁面不刷新,bug


uniapp 生命周期(onLoad跟onLoadonShow的區別)

一、uniapp生命周期分兩種 :

1、應用生命周期:僅可在App.vue中監聽,在其它頁面監聽無效。

2、頁面生命周期:僅在page頁面中監聽,而單獨封裝的組件中【頁面周期無效】,但是Vue的生命周期依然有效 【Vue的生命周期在任何地方都是有效的】

二、頁面生命周期

1、頁面的加載過程是: 加載-顯示-加載完成-頁面隱藏-頁面卸載

2、頁面生命周期的出發過程: onLoad:監聽頁面加載 =》 onShow:監聽頁面顯示 =》 onReady:監聽頁面初次渲染完成 =》 onHide:監聽頁面隱藏 =》 onUnload:監聽頁面卸載

3、onLoad跟onLoadonShow的區別

         (1)onShow: 監聽頁面顯示。頁面每次出現在屏幕上都觸發,包括從下級頁面點返回露出當前頁面

          例如:頁面b:通過緩存跳轉到頁面a

          頁面B:緩存一個變量newMember   uni.setStorageSync('newMember', this.newMember)

          頁面A可以接受這個參數變量:onShow() { let str = uni.getStorageSync('newMember') },

         (2) onLoad:只加載一次,監聽頁面加載,其參數為上個頁面傳遞的數據,參數類型為Object(用於頁面傳參)

             只加載一次 所以如果b頁面不斷的修改數據 再通過 onLoad(){  uni.navigateBack({delta: 1,})   回到A頁面 a頁面的數據不會隨之改變

    總結:A頁面跳轉到B頁面后,從二級頁面B返回該頁面A時,onLoad不會再次加載,而onshow會重新加載。   

   應用選擇:

             1.如果加載列表頁,二級頁面對一級的列表頁面內容有修改,則以及列表函數應該在onShow中加載,否則可以選擇onLoad。

            2.如果從一個頁面攜帶參數跳轉到另外一個頁面,在另一個頁面獲取參數的方式: onLoad(options){ console.log(options.xxx) },這些參數都掛在在options.

            3.在一些數據變化較少的時候我們用onload

           4:像這些order訂單列表數據變化及時性我們用的是onshow;    

  • onLoad先於onShow執行
  • onLoad頁面的整個生命周期里,只執行一次
  • onShow頁面的整個生命周期里,可執行多次,即每次顯示都會執行
  • 獲取參數並且只請求一次的事件放在 onLoad 里。
  • 當前頁面需要時時刷數據的請求多次的事件放在 onShow 里。


免責聲明!

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



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