Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 12922|Yanıt: 0

[iyonik] ionic3 sayfa yaşam döngüsü olayları (kancalar)

[Bağlantıyı kopyala]
Yayınlandı 21.06.2018 10:30:06 | | | |
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






Önceki:Ionic Development Android Uygulama Uygulaması (3): Haber Video Listesi
Önümüzdeki:ionic3 sağlayıcı
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com