做現在的MVVM的單頁面前端項目,一般只要把整個頁面的生命週期函數理順了就得心應手了,下面是ionic的生命週期事件:
截至ionic 3.8.0版本,框架提供了8個鉤子函數,它們分別會在頁面生命週期的各個階段被觸發,我們來簡單瞭解一下。
- // 頁面被加載完成後調用的函數,切換頁面時並不會進行重新加載,因爲有cache的存在
- onPageLoaded() {
- console.log('page 1: page loaded.');
- }
- // 頁面即將進入的時候
- onPageWillEnter() {
- // 在這裏可以做頁面初始化的一些事情
- console.log('page 1: page will enter.');
- }
- // 頁面已經進入的時候
- onPageDidEnter() {
- console.log('page 1: page did enter.');
- }
- // 頁面即將離開的時候
- onPageWillLeave() {
- console.log('page 1: page will leave.');
- }
- // 頁面已經離開的時候
- onPageDidLeave() {
- console.log('page 1: page did leave.');
- }
- // 從 DOM 中移除的時候執行的生命週期
- onPageWillUnload() {
- }
- // 從 DOM 中移除執行完成的時候
- onPageDidUnload() {
- }
上面介紹了6個。這6個鉤子有個共性,它們的返回值都是void,即在相應時刻調用,不會返回任何的信息。
而另外兩個鉤子有些不太一樣,它們是可以返回布爾值的ionViewCanEnter和ionViewCanLeave。
//字面理解能進入
ionViewCanEnter() :boolean {
if(new Date().getHours()>=9){
console.log('時間到了,上班了!');
return false;
}
return true;
}
//字面理解能離開
ionViewCanLeave() :boolean {
if(new Date().getHours()>=18){
console.log('時間到了,可以下班了!');
return false;
}
return true;
}