Benim deneyimime göre, çoğu öğrenci bu kavramı biliyor. Çok bilginiz yoksa, tarayıcının bir web sayfası yüklendiğinde yükleme olayı başlatacağını bilmelisiniz ve genellikle window.onload veya jquery'de $(document).load() yöntemini kullanarak bir web sayfası yüklendiğinde ne yapması gerektiğini tanımlar.
Bir APP'de bu tür etkinlikler daha zengindir. Çoğu zaman, kullanıcılar sayfayı görmeden önce bir şeyler yapmanız gerekir, en yaygın olanı sunucudan veri çekmektir; Ya da sayfa bırakmak üzereyken bir şeyler yapacaklar.
1. İyonik yaşam döngüsü kancasını anlamak Ionic 3.8.0 itibarıyla, çerçeve sayfa yaşam döngüsünün çeşitli aşamalarında tetiklenen 8 kanca fonksiyonu sağlar.
1.1 ionViewDidLoad Sayfa yükleme tamamlama tetikleyicisi, burada "yüklendi tamamlandı", gerekli kaynakların yüklendiği ancak henüz sayfanın durumuna girmediği sayfa durumunu ifade eder (kullanıcı önceki sayfayı hala görüyor).
Not edilmeli ki, bu çok kibirli bir kancadır; tüm süreçte sadece bir kez çağrılacak, yani sayfaya ilk kez girdiğinizde çağrılacak ve sonrasında, nasıl girip çıkarsanız çıkın, terk edilmiş ve mutsuz olacak. Arka planını kapatıp yazılıma yeniden girmezseniz (web sayfasını hata ayıklarken yenilemeye de izin vermek de sorun değil).
Bu nedenle, bu hook, sunucudan kullanıcı verilerini çekip önbelleğe depolamak gibi tek seferlik işlemler yapmak için uygundur.
1.2 ionViewWillEnter Kelimenin tam anlamıyla anlaşılan "Giriyorum" anıdır, sayfa hemen değişmeye başlar. Bu noktada sayfanın verilerini önceden işleyebilirsiniz ve bu hook her seferinde çağrılacaktır.
1.3 ionViewDidEnter Bu hook tetiklendiğinde, kullanıcı yeni bir sayfaya girmiştir (sayfa aktiftir) ve her seferinde çağrılacaktır.
Bunu konuşmuşken, araya girmem gerekiyor, ionic'in kancalara isimlendirmesi çoğu Çinli öğrenci için gerçekten dostane ve biri çözecek, biri de sorunu çözecek. Dışarıdaki bazı göz alıcı (yanlış) çerçevelerin aksine, bir sürü hazır, güncelleme, uyumlu, destory, bir kez hatırla, bir kez unut gibi şeyler var. (Tabii ki bu bir şaka, bileşenlerin isimlendirilmesi çerçevenin çalışma mekanizmasıyla yakından ilgilidir)
1.4 ionViewWillLeave Sayfa Hazır (neredeyse olacak), kullanıcı geri tuşunu veya ilgili olayı tetiklediğinde tetiklenir.
1.5 ionViewDidLeave Sayfa bittiğinde tetiklenir, sayfa etkin değildir.
1.6 ionViewWillUnload Bir sayfadaki bir kaynak yok edilmek üzereyken tetiklenir, bu kanca, tıpkı ionViewDidLoad gibi, sadece bir kez tetiklenecek mi?
1.7 Test Önceki bölümde oluşturduğumuz sayfayı alıp kancanın yüklenmesiyle ilgili bir test yapalım. Önceki bölümde, Ana Sayfa'dan Test Sayfası'na düğmelerle geçiş sürecini uygulamıştık ve şimdi yukarıdaki altı kancayı TestPage'e ekleyip konsol üzerinden çağrılarını gözlemliyoruz.
Sayfa tema bölümü kodu şöyledir
Ayrıca yapıcıya bir test ifadesi eklediğimi unutmayın. Serve hata ayıklama uygulamasını açın, butona tıklayın, TestPage'e gidin ve konsolun ne çıkardığını gözlemleyin.
Sayfada ilk kez
Ana sayfaya geri dönüp konsolun ne verdiğini gözlemleyin.
Sayfadan ilk kez ayrılmak
TestPage'e tekrar girip çıkın ve konsolun ne çıkardığını gözlemleyin.
İkinci giriş ve çıkış
Aşağıdaki sonuçlar çıkarılabilir:
- Yapıtıcı, ionViewDidLoad olmadan önce ateşlenir.
- ionViewDidLoad sadece sayfaya ilk girdiğinizde ateşlenir
- ionViewWillUnload sayfadan her ayrıldığınızda tetiklenir
2. Ayrıca iki koruma kancası vardır
Başta ionic'in 8 kanca sunduğunu söylemiştim, ben ise sadece 6 kanca sunmuştum. İlk 6 kancanın ortak bir özelliği vardır ve döndürme değerleri hepsi geçersizdir; yani ilgili anda çağrılırlar ve herhangi bir bilgi döndürmezler.
Diğer iki hook biraz farklı, ionViewCanEnter ve ionViewCanLeave, bunlar boolean'ları döndürebiliyor. Bakın, az önce zamanlardan bahsettim, şimdi modal fiillerden bahsedeceğim. Eğer ilk 6 kanca sayfanın kullanıcının ziyaretine pasif bir yanıtıysa, artık sayfa size girmenize ya da gitmenize izin verecek bilinç sahibidir, ah, sayfa bundan sonra ayakta kalmıştır!
Bu iki kanca otorite kontrolünde daha çok rol oynuyor ve son zamanlarda çok popüler bir terim olan Muhafız var, bu muhafızı nasıl anlarsınız, topluluğun kapıcısı, samimi müdür ve eski kayısı çiçeği binasında binlerce duruşu olan yaşlı bustard 2333 olarak anlayabilirsiniz.
Artık bir boolean değeri döndürdüğünü bildiğimize göre, deneyelim. Programımızda iş mantığı olmadığı için, burada değerlendirmek için zaman API'si kullanalım
Sayfaya erişim engellenmiştir
Benzer şekilde, bir sayfada bırakmak isterseniz, ionViewCanLeave false dönerse engellenirsiniz.
Geri dönüş işlemi engellenir
Konsol baskısı bilgileri
3 Özet
Öhöm, artık saçmalık yok, özetlemek gerekirse, Ionic'in şu yaşam döngüsü kancaları var
- ionViewDidLoad void'u ilk kez döndürmek için çağrılır
- ionViewWillEnter her çağrıldığında void döndürür
- ionViewDidEnter her çağrıldığında void döner.
- ionViewWillLeave her çağrıldığında void döner.
- ionViewDidLeave her çağrıldığında void döner.
- ionViewWillUnload her çağrıldığında void döndürür
- ionViewCanEnter her çağrıldığında boolean döndürür
- ionViewCanLeave her çağrıldığında boolean döndürür
|