ionic3生命周期鈎子


轉自:https://www.jianshu.com/p/72b704b5c9ed

1、認識ionic的生命周期鈎子

截止ionic3.8.0版本,框架提供了8個鈎子函數,它們分別會在頁面生命周期的各個階段被觸發。

1.1 ionViewDidLoad

頁面加載完成觸發,這里的“加載完成”指的是頁面所需的資源已經加載完成,但還沒進入這個頁面的狀態(用戶看到的還是上一個頁面)。

需要注意的是它是一個很驕傲的鈎子,全程只會調用一次,即第一次進入頁面時被調用,此后你無論怎樣進進出出它都不再理你了。

因此,這個鈎子適合你做一些一次性的處理,比如從服務器拉取用戶數據存到緩存中。

1.2 ionViewWillEnter

字面意義理解就是“我要進來了”的那一刻,這個時候頁面剛剛開始切換。你可以在這時對頁面的數據進行預處理,這個鈎子是每次都會調用的。

1.3 ionViewDidEnter

當這個鈎子被觸發的時候,用戶已經進入到新頁面了(頁面處於激活狀態),同樣也是每次都會調用。

1.4 ionViewWillLeave

頁面准備離開時觸發,這時用戶剛剛觸發了返回按鈕或者相關的事件。

1.5 ionViewDidLeave

頁面已經(has finished)離開時觸發,頁面處於非激活狀態了。

1.6 ionViewWillUnload

頁面中的資源即將被銷毀時觸發,會在每次離開頁面后觸發

1.7 實驗

實驗得出以下結論:

1、構造函數在ionViewDidLoad之前被觸發

2、ionViewDidLoad只在第一次進入頁面時觸發

3、ionViewWillUnload會在每次離開頁面后觸發

 

2.還有兩個守衛鈎子

我開頭提到ionic提供了8個鈎子,而我只介紹了6個。前6個鈎子有個共性,它們的返回值都是void,即在相應時刻調用,不會返回任何的信息。

而另外兩個鈎子有些不太一樣,它們是可以返回布爾值的ionViewCanEnter和ionViewCanLeave。

如果前6個鈎子是頁面對用戶來訪的一種被動反應,那么現在,頁面具有了意識,可以准許你來或者准許你走。

這兩個鈎子,更多扮演着權限控制的角色,最近有個很新潮的術語叫守衛。

如果 ionViewCanEnter和ionViewCanLeave返回了false,就會被阻攔。

 


免責聲明!

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



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