Navix Lifecycle ile Sahneyi Canlandırın
03 //Lifecycle olayları geliştiriciye ne kadar alan açar?
Temel lifecycle olayları onRegister, onUnregister, onFocus, onBlurred ve onEvent'tir. Bunlara ek olarak focusOnRegister ve disabled gibi proplar bu olaylarla birleşince oldukça geniş bir alan açılır.
onEvent en esnekidir. Her tuş basışı önce odaktaki en derin düğüme ulaşır; o düğüm true döndürürse olay tüketilmiş sayılır ve yukarı çıkmaz. Bu sayede herhangi bir bileşen istediği tuşu yakalayıp kendi mantığını çalıştırabilir, geri kalanını ağaca bırakır.
focusOnRegister küçük ama pratik bir prop. Bileşen ağaca kaydolduğu anda odağı kendine çeker. Modal veya yeni açılan bir ekranda ilk odağın nereye düşeceğini elle yönetmek yerine bu prop yeterli olur.
disabled ise sadece görsel bir işaret değildir. canReceiveFocus mekanizmasına bağlıdır; disabled bir düğüm odak alamaz, focusNext ve focusPrev onu otomatik atlar.
Sınır nerede? Lifecycle olayları bileşen bazında çalışır; birden fazla bileşeni kapsayan merkezi bir olay dinleyicisi yoktur. Bir bileşenin başka bir bileşenin odak durumunu doğrudan takip etmesi için ortak bir parent üzerinden iletişim kurmak gerekir. Bu kasıtlı bir tasarım kararıdır: her bileşen kendi sorumluluğunu taşır, ağaç bütünü koordine eder.
04 //Demo'daki MediaCard'ın gelişimi nasıl ilerledi?
İlk başta olayları dışarıdan kontrol etmeyi denedik; hangi kartın görünür olduğunu üst bileşenden takip edip aşağıya prop olarak iletmek mantıklı geldi. Ama demo geliştikçe, her yeni özellikle birlikte bu yaklaşım hızla dağınıklaştı. Sonunda önbellekleme ve oynatma sorumluluğunun tamamen kartın içinde kalması gerektiği netleşti. onRegister görünür alana girişi, onFocus odaklanmayı, onBlurred ve onUnregister ise temizliği üstlendi. Dışarıda koordine edilmesi gereken tek şey kaldı: kart ne istediğini söyler, nasıl karşılandığı artık kartın meselesi değildir.
05 //Bu sistemi gerçek bir uygulamada nasıl genişletirsiniz?
Bileşenin lifecycle olayları yalnızca talebi iletir; talebin nasıl karşılanacağını belirlemek uygulamanın sorumluluğundadır. Gerçek bir senaryoda merkezi bir manager devreye girer: aynı anda kaç içeriğin önbellekleneceğini, hangisine öncelik verileceğini bu katman belirler. Bileşen onRegister'da cache isteğini manager'a bildirir, onFocus'ta oynatma talebini iletir, onUnregister'da iptal eder. Manager ise cihazın kaynaklarını göz önünde tutarak bu talepleri sıraya koyar. Böylece bileşenler sahneyi canlı tutarken arka planda ne kadar yük oluştuğu kontrol altında kalır.