微信小程序生命周期(onLoad,onHide,onShow,onReady,onUnload)的坑

? ? ? ?在寫一個業(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的生命周期找答案

圖1

? ? ? ? 我發(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

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


圖3

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


圖4

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

tips:所有情況都是針對微信app沒有被殺死的情況下討論的,如果微信這個app被殺死,那小程序自然被殺死

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 給提問的開發(fā)者的建議:提問之前先查詢 文檔、通過社區(qū)右上角搜索搜索已經(jīng)存在的問題。 寫一個簡明扼要的標題,并且...
    極樂叔閱讀 14,631評論 0 3
  • 前言: 上一篇文章我們介紹了.wxml和.wxss文件,這篇文章對js文件進行詳細的講解,首先貼上一個簡單的js文...
    Smile__EveryDay閱讀 20,418評論 0 7
  • 經(jīng)過多次勸說無果,老賀已經(jīng)不再對賀大的婚姻抱任何希望了。但是天生的祖孫情感和責(zé)任感讓他覺得自己的孫子被別人撫養(yǎng)是件...
    油油的悠悠閱讀 701評論 5 1
  • “我的好兄弟,心里有苦你對我說,前方大路一起走,哪怕是河也一起過,苦點累點又能算什么。在你需要我的時候,我來陪你一...
    后海不是海Ada閱讀 217評論 0 1
  • 寒風(fēng)乍起,枯葉有氣無力地蕩著,街道上,那些悠閑地游于商店廣場間的人少了,轉(zhuǎn)而成為一輛輛匆匆行駛的汽車?? ...
    墨冥兒_棄掉的號閱讀 200評論 0 0

友情鏈接更多精彩內(nèi)容