轉載:https://www.jianshu.com/p/49c153fca075
在寫一個業務邏輯的時候遇到一個問題。。小程序wxml的數據在你返回微信主頁的時候是不算退出的,只能算onhide,而且小程序沒有給退出小程序的監聽方法,以前看文章說用信號量來監測,確實能夠實現一部分,可是若是小程序有tabbar的話,,這個方法也很差使。因此我遇到的問題就是,第一次掃碼進入一個小程序,刷新出來數據之後,返回微信主界面,再點開這個小程序,首頁的數據在不從新請求的狀況下,以前綁定的數據就沒有了;可是若是你手動刷新出來數據,仍然返回微信主頁面,而後再打開這個小程序,在不刷新數據的狀況下,上次的數據會保留下來,這就讓我很煩惱。。沒有數據的小程序。。估計會讓人秒刪。。而後我從wxml的生命週期找答案小程序
我發現。。在沒有殺死微信這個app的狀況下。。微信
第四次打開小程序,同第三次app
第五次。。。。。同第三次。。。ide
。。。orm
也就是說,當小程序執行了onUnload的時候,wxml綁定的數據就會消失,而後再進入小程序纔會走onLoad方法cdn
心細的話你會發現第一次退出和第二次退出有什麼區別:xml
第一次打開小程序並退出的話,是下面這個(朋友圈)頁面blog
第2次打開小程序並退出的話,是下面這個(小程序)頁面生命週期
不要小看這個細節、當是圖3的時候,小程序打開是要走onLoad方法的,由於上次關閉的時候走了onUnload方法、當是圖4狀況的話,就不會走onLoad方法,它的上一次退出也沒走onUnload方法、小程序的生命週期發生了挺大變化,固然這個細節大部分業務邏輯不用關心,可是真的用到的時候,不清楚這個知識點可能會多寫不少代碼,我相信某個時間點你會感激個人,哈哈ip
tips:全部狀況都是針對微信app沒有被殺死的狀況下討論的,若是微信這個app被殺死,那小程序天然被殺死