微信小程序組件生命周期


1.A頁面點擊跳轉到B頁面,在B頁面操作后A頁面應該發生變化,但是實際上我們點擊返回的時候我們發現並沒有刷新,通過小程序的生命周期函數由onLoad(頁面加載)、onReady(頁面初次渲染完成)、onShow(頁面顯示)、onHide(頁面隱藏)、onUnload(頁面卸載)五個周期構成。

問題:如果在onShow中執行this.onLoad(),會導致頁面第一次加載的時候數組加載兩次!

原因:頁面加載先執行onLoad,再執行的onShow,就會出現在onLoad加載一次數據,在onShow中執行this.onLoad()在加載一次數據。

解決方案:將不需要刷新的數據放在onLoad中執行,將需要刷新的數據放在onShow中執行!

2.對於組件的生命周期沒有onLoad()、onShow()生命周期的頁面,怎么對帶有組件頁面的進行頁面刷新操作?

點擊A頁面(帶有組件),進入B頁面,在B頁面操作完成后,同樣回退到A頁面時,我們對A頁面的數據進行刷新操作。

組件:

HTML:

<custom-component>
 
 <view wx:for="{{list}}"> {{item}} </view>
 
</custom-component>

JS:

Component({
    data: {
      list: []
    },
    ready: function() {
      this.getData();
      console.log('ready')
    },
 
    methods: {
      getData() {
        console.log("刷新數據")
        var num = Math.floor(Math.random() * 10 + 1);
        this.setData({
          list: num
        })
      }
    }
  })

  


免責聲明!

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



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