浅谈微信小程序生命周期
之前在做微信小程序的時候,一直對生命周期里面的onLoad,onShow,onUnload不是很理解。比如說什么時候會觸發onUnload。
經過一段時間的測試發現,普通頁面的onUnload在三種情況下會觸發。
- 某一個頁面跳轉到tabBar頁面,根據小程序文檔介紹,當跳轉到tabBar頁面的時候會卸載其他非tabBar頁面。
- 當前頁點擊回退按鈕回退到上一個頁面,此時當前頁也會觸發onUnload。
- A頁面redirect跳轉至某一頁面,A頁面觸發onUnload。并且返回鍵跳轉至A頁面的上一頁。
其次是當跳轉到其他非tabBar頁面的時候,并且未觸發onUnload,但是每次進入頁面都相當于重新打開了一個頁面,數據不能從data中同步。
例如A頁面為tabBar頁面,B頁面C頁面是非tabBar頁面。從A頁面進入B頁面,B頁面執行onLoad,從B頁面進入C頁面,B頁面并不會執行onUnload,從C頁面進入A頁面,B頁面C頁面都會執行onUnload。
又比如,從A頁面進入B頁面,并改變B頁面的數據,從B頁面進入C頁面,然后從C頁面進入B頁面,數據還是走的之前的邏輯,因為此時我們相當于重新打開了一個B頁面。但是如果此時我們通過返回操作進入B頁面的話,那么B頁面的數據還是之前保留下來的,因為通過返回鍵進入的還是之前的頁面。
onShow對應的是onHide,一個是當頁面顯示的時候,一個是當頁面隱藏的時候。
此時需要注意的是,當從其他頁面進入當前頁面的時候,onLoad和onShow會依此執行,但是當使用返回鍵返回到當前頁面的時候,只會執行onShow。
tabBar頁面的onUnload需要使用redirect觸發,需要注意的是,從tabBar頁面redirect進入某一頁面,該頁面原生返回鍵將被默認隱藏。
轉載于:https://www.cnblogs.com/gitByLegend/p/11435399.html
總結
以上是生活随笔為你收集整理的浅谈微信小程序生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端vscode常用插件
- 下一篇: vue定义global.js,挂载在vu