? ? ? ?在寫一個業(yè)務(wù)邏輯的時候遇到一個問題。。小程序wxml的數(shù)據(jù)在你返回微信主頁的時候是不算退出的,只能算onhide,并且小程序沒有給退出小程序的監(jiān)聽方法,之前看文章說用信號量來監(jiān)測,確實可以實現(xiàn)一部分,但是如果小程序有tabbar的話,,這個方法也不好使。所以我遇到的問題就是,第一次掃碼進入一個小程序,刷新出來數(shù)據(jù)以后,返回微信主界面,再點開這個小程序,首頁的數(shù)據(jù)在不重新請求的情況下,之前綁定的數(shù)據(jù)就沒有了;但是如果你手動刷新出來數(shù)據(jù),仍然返回微信主頁面,然后再打開這個小程序,在不刷新數(shù)據(jù)的情況下,上次的數(shù)據(jù)會保留下來,這就讓我很煩惱。。沒有數(shù)據(jù)的小程序。。估計會讓人秒刪。。然后我從wxml的生命周期找答案

? ? ? ? 我發(fā)現(xiàn)。。在沒有殺死微信這個app的情況下。。
第一次打開小程序,以上前3個方法各執(zhí)行1次,當(dāng)?shù)谝淮位氐轿⑿胖黜撁娴臅r候onHide,onUnload各執(zhí)行1次;
第二次打開小程序,以上前3個方法各執(zhí)行1次,當(dāng)?shù)诙位氐轿⑿胖黜撁娴臅r候onHide執(zhí)行1次,onUnload不執(zhí)行;
第三次打開小程序,onLoad,onReady不執(zhí)行,onShow執(zhí)行一次;當(dāng)?shù)谌位氐轿⑿胖黜撁娴臅r候onHide執(zhí)行1次,onUnload不執(zhí)行;
第四次打開小程序,同第三次
第五次。。。。。同第三次。。。
。。。
也就是說,當(dāng)小程序執(zhí)行了onUnload的時候,wxml綁定的數(shù)據(jù)就會消失,然后再進入小程序才會走onLoad方法
心細的話你會發(fā)現(xiàn)第一次退出和第二次退出有什么區(qū)別:

第一次打開小程序并退出的話,是下面這個(朋友圈)頁面

第2次打開小程序并退出的話,是下面這個(小程序)頁面

不要小看這個細節(jié)、當(dāng)是圖3的時候,小程序打開是要走onLoad方法的,因為上次關(guān)閉的時候走了onUnload方法、當(dāng)是圖4情況的話,就不會走onLoad方法,它的上一次退出也沒走onUnload方法、小程序的生命周期發(fā)生了挺大變化,當(dāng)然這個細節(jié)大部分業(yè)務(wù)邏輯不用關(guān)心,但是真的用到的時候,不清楚這個知識點可能會多寫很多代碼,我相信某個時間點你會感激我的,哈哈
tips:所有情況都是針對微信app沒有被殺死的情況下討論的,如果微信這個app被殺死,那小程序自然被殺死