Kütüphane Olmadan Giriş ve Çıkış Animasyonları
React'te görüntülenme ve opaklık zamanlamasını elle kontrol ederek bağlama ve ayırma animasyonlarını uygulayın.
Kütüphane Olmadan Giriş ve Çıkış Animasyonları, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.
DOM'dan Kaldırma Sorunu
{show && ile koşullu oluşturma yaptığınızda, show false olur olmaz React öğeyi DOM'dan kaldırır. Düğüm artık ortada olmadığı için çıkış animasyonuna zaman kalmaz.
Giriş animasyonları kolaydır; asıl zorluk çıkış animasyonlarıdır.
1. Çözüm: DOM'da Tutma
En basit çözüm, öğeyi hiç kaldırmamaktır. Öğeyi oluşturmaya devam edin; gizlendiğinde opacity değerini sıfıra ve pointer-events: none değerine ayarlayarak, gösterildiğinde ise tekrar bire çıkararak canlandırın.
Bu yöntem, öğenin DOM'da kalması pahasına her iki yönde de yumuşak belirmeler sağlar.
2. Çözüm: DOM'a Ekleme Durum Makinesi
Gerçekten kaldırmak için mounting, mounted, unmounting ve unmounted gibi aşamalardan oluşan küçük bir durum makinesi modelleyin. Düğümü yalnızca çıkış animasyonu tamamlandıktan sonra kaldırın.
Durum, her aşamada hangi animasyon sınıflarının uygulanacağını belirler.
useMount Kancası
Makineyi genellikle useMount adı verilen özel bir kancada kapsülleyebilirsiniz. Bu kanca, istenen görünürlüğü alır ve öğenin DOM'da bulunup bulunmaması gerektiğiyle birlikte geçerli aşamasını döndürür.
Zamanlama mantığı yeniden kullanılabilir kancada bulunduğu için bileşenler temiz kalır.
Giriş ve Çıkış Sınıf Çiftleri
Yaygın kurallardan yararlanarak DOM'a eklenirken önce enter, ardından enter-active; kaldırılırken önce exit, ardından exit-active sınıflarını uygulayın. Temel sınıf başlangıç durumunu, etkin sınıf ise geçişle birlikte son durumu belirler.
İki sınıf arasında doğru karede geçiş yapmak animasyonu oluşturur.
Geçiş Sonunu Dinleme
Bir çıkış animasyonunun ne zaman tamamlandığını öğrenmek için öğedeki transitionend olayını dinleyin. Olay çıkış için tetiklendiğinde durumu unmounted olarak değiştirin ve düğümü kaldırın.
Bu yöntem, DOM'dan kaldırma işlemini tahmini bir zaman aşımı yerine görsel animasyonun sonuna tam olarak bağlar.
Yeniden Kullanılabilir Geçiş Bileşeni
Tüm bunları bir Transition bileşeninde kapsülleyebilirsiniz; bu bileşen bir in özelliği ve alt öğeler alır. Alt öğeleri çıkış animasyonları boyunca DOM'da tutar ve her aşamaya uygun sınıfları uygular.
Bileşeni kullananlar yalnızca in değerini değiştirerek doğru giriş ve çıkış hareketlerine ek bir işlem yapmadan sahip olur.
Etkin Sınıfı Doğru Tetikleme
İnce bir ayrıntı şudur: etkin sınıfı eklemeden önce tarayıcının başlangıç sınıfını çizmesine izin vermelisiniz; aksi halde öğe geçiş olmadan sıçrar. İki işlem arasına bir requestAnimationFrame veya zorunlu yeniden akış eklemek geçişin gerçekten çalışmasını sağlar.
Bu, tarayıcının önce başlangıç değerlerini kaydetmesini garanti eder.
react-transition-group ile Karşılaştırma
react-transition-group kitaplığı, sınıf yaşam döngüsü ve DOM'dan kaldırma zamanlaması da dahil olmak üzere bu örüntüyü tam olarak uygulayan Transition ve CSSTransition bileşenlerini sağlar.
DIY sürümünüz kitaplığın temel fikirlerini yansıtır; bu nedenle bir tanesini kendiniz oluşturduktan sonra kitaplığı anlamak kolaylaşır.
Kitaplık mı, DIY mı Kullanılmalı
Tek bir basit belirme efekti için DOM'da tutma yaklaşımı veya küçük bir kanca yeterlidir ve bağımlılık eklemekten kaçınmanızı sağlar. Birden çok eşgüdümlü geçiş, ekleme ve kaldırma işlemleri içeren listeler ya da karmaşık sıralamalar için kitaplık kullanmak zaman kazandırır ve uç durum hatalarını azaltır.
Seçiminizi, uygulamanızın gerçekte ne kadar animasyon karmaşıklığına ihtiyaç duyduğuna göre yapın.
Hepsini Bir Araya Getirme
Çıkış animasyonları, öğe animasyonu tamamlanana kadar canlı tutulmasını gerektirir. Bunu öğeyi hiç kaldırmayarak, transitionend ile birlikte bir durum makinesi kullanarak veya bir kitaplıktan yararlanarak yapabilirsiniz.
İşleyişi anlamak, ihtiyaçlarınızı karşılayan en hafif yaklaşımı seçmenizi sağlar.
Hızlı Kontrol
Çıkış animasyonlarını anlayıp anlamadığınızı sınayın.
Özet
Çıkış animasyonlarının neden zor olduğunu, iki çözümü (DOM'da tutma ve DOM'a ekleme durum makinesi), transitionend'in DOM'dan kaldırma zamanını nasıl belirlediğini ve yeniden kullanılabilir bir Transition bileşeninin nasıl oluşturulacağını öğrendiniz.
Ayrıca DIY yerine ne zaman react-transition-group kullanmanız gerektiğini gördünüz.
Sıkça Sorulan Sorular
“Kütüphane Olmadan Giriş ve Çıkış Animasyonları” dersi ücretsiz mi?
Evet — “Kütüphane Olmadan Giriş ve Çıkış Animasyonları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.
“Kütüphane Olmadan Giriş ve Çıkış Animasyonları” dersinde ne öğreneceğim?
React'te görüntülenme ve opaklık zamanlamasını elle kontrol ederek bağlama ve ayırma animasyonlarını uygulayın. React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
React Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Kütüphane Olmadan Giriş ve Çıkış Animasyonları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu React Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- React Durum Değişiklikleriyle CSS Geçişleri
- React ile CSS Kare Animasyonları
- Animasyon Öncesi Ölçümler için useLayoutEffect
- Kütüphane Olmadan Giriş ve Çıkış Animasyonları