0Pricing
React Academy · Ders

Pratik Uygulamalar: Arama, Kaydırma, Yeniden Boyutlandırma

Gerçek bileşen örneklerinde arama girdilerine gecikmeli çalıştırma, kaydırma ve yeniden boyutlandırma dinleyicilerine ise hız sınırlama uygulayın.

Pratik Uygulamalar: Arama, Kaydırma, Yeniden Boyutlandırma, 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.

useDebounce ile Canlı Arama

Canlı arama bileşeninde iki ayrı durum değişkeni tutun: ham girdi için inputValue (her tuş vuruşunda güncellenir ve girdi alanını duyarlı tutar) ve useDebounce(inputValue, 300) ile elde edilen debouncedQuery (yazmayı bıraktıktan 300 ms sonra güncellenir ve API çağrısını başlatır). Bu ayrım, aşırı sayıda istek göndermeden anında görsel geri bildirim sağlar.

Arama Sırasında Yükleme Durumu

Yükleme göstergesini yalnızca API çağrısı başladığında değil, kullanıcı yazmaya başlar başlamaz gösterin. Geciktirme beklemedeyken bu değerler eşzamanlı olmadığından, inputValue !== debouncedQuery olduğunda isLoading: true ayarlayın. Sorgu kararlı hale gelip veri alma işlemi tamamlandığında yeniden false olarak ayarlayın. Kullanıcılar süreç boyunca duyarlı bir yükleme göstergesi görür.

useThrottle ile Kaydırma İşleyicisi

Bir paralaks efekti veya okuma ilerleme çubuğu, kaydırma konumuna göre güncellenir. Kaydırma işleyicisini 16 ms gecikme kullanarak saniyede en fazla 60 kareyle sınırlayın: const throttledScrollY = useThrottle(scrollY, 16). Böylece kullanıcı arayüzü, kaydırmanın her pikselinde konumu yeniden hesaplamanın getireceği maliyet olmadan akıcı biçimde güncellenir.

useDebounce ile Pencereyi Yeniden Boyutlandırma

Düzeni yeniden hesaplamak için pencerenin yeniden boyutlandırılmasını dinlemek, hız sınırlamak yerine geciktirilerek yapılmalıdır. Düzen hesaplamasının yalnızca kullanıcı yeniden boyutlandırmayı bitirdikten sonra bir kez çalışması yeterlidir. Pencere boyutlarına 200 ms geciktirme uygulayın. Yeniden boyutlandırma sürüklemesi sırasında kullanıcı arayüzü basitleştirilmiş bir durum gösterebilir; yeniden hesaplanan düzen, yeniden boyutlandırma durduğunda görünür.

Geciktirmeyi AbortController ile Birleştirme

debouncedQuery değiştiğinde yeni bir AbortController oluşturun ve signal değerini fetch(url, { signal }) çağrısına aktarın. controller.abort() çağrısını yapan bir temizleme işlevi döndürün. Böylece yeni bir geciktirilmiş sorgu geldiğinde önceki sorgunun devam eden isteği iptal edilir ve yavaş gelen eski yanıtın daha hızlı gelen yeni yanıtın üzerine yazdığı yarış koşulları önlenir.

AbortController Olmadan Yarış Durumu

AbortController olmadan kullanıcı "re" yazıp bekler, ardından "react" yazarsa ikinci sorgu, önbellekleme nedeniyle birinciden önce dönebilir. Arama sonuçları kısa süreliğine React sonuçlarını gösterir, ardından eski "re" sonuçlarıyla üzerine yazılır. AbortController, önceki isteği tamamen iptal ederek bunu önler.

Otomatik Tamamlama Açılır Liste Deseni

Açılır liste, API çağrıları için geciktirmeyi ve girdi görüntüleme için anında durumu birleştirir. inputValue, metin alanında ne görüneceğini denetler. useDebounce(inputValue, 250), önerilerin ne zaman getirileceğini denetler. Öneri listesi, her iki girdi durumundan da ayrı olan, getirilen sonuçların durumundan oluşturulur.

Hız Sınırlamalı Asenkron Doğrulama

E-posta adresinin zaten var olup olmadığını denetlemek gibi asenkron form doğrulaması, her tuş vuruşunda sunucuyu gereksiz yere yormamak için geciktirilmelidir. Alan değerine 400 ms geciktirme uygulayın ve doğrulama isteğini, geciktirilmiş değere bağlı olan bir useEffect içinde başlatın. Doğrulama beklemedeyken alanda bir yükleme göstergesi gösterin.

Geciktirmeyle Formu Otomatik Kaydetme

Geciktirme, kullanıcı yazarken form içeriğini otomatik kaydetmek için idealdir. Form değerleri nesnesine 1000 ms geciktirme uygulayın. Geciktirilmiş değer değiştiğinde localStorage'a veya bir API uç noktasına kaydetme işlemini başlatın. Geciktirme beklemedeyken kullanıcı "Kaydediliyor..." göstergesini, istek tamamlandığında ise "Kaydedildi" göstergesini görür.

Doğru Gecikmeyi Seçme

Gecikme değerleri, kullanıcı deneyimiyle ilgili kararlardır. Arama için 200-300 ms, duyarlılık ile daha az istek gönderme arasında denge kurar. Yeniden boyutlandırma için 150-200 ms kabul edilebilir; çünkü kullanıcılar yeniden boyutlandırmadan sonra düzenin oturmasını bekler. Otomatik kaydetme için 1000 ms, kullanıcılara kaydetmeden önce bir cümle yazacak kadar zaman tanır. Değeri, beklenen etkileşim hızına göre ayarlayın.

Birden Çok Tekniği Birleştirme

Gerçek uygulamalar genellikle aynı anda birden çok iyileştirmeye ihtiyaç duyar. Bir belge düzenleyici otomatik kaydetmeyi geciktirebilir (1 sn), kelime sayısı hesaplamasını hız sınırlayabilir (500 ms) ve analiz için IntersectionObserver kullanabilir. Bu teknikler, her biri kendi zamanlayıcısı ve kapsamı üzerinde bağımsız çalıştığı için birlikte iyi çalışır.

Geciktirmeyi AbortController ile Birleştirme

Geciktirilmiş bir arama sorgusuyla birlikte neden AbortController kullanmalısınız?

Ders Özeti: Uygulamalı Geciktirme ve Hız Sınırlama

Arama girdileri, yeniden boyutlandırma işleyicileri ve formu otomatik kaydetme için useDebounce kullanın. Kaydırma ve fare hareketi için useThrottle kullanın. Yarış koşullarını önlemek için geciktirilmiş API çağrılarını her zaman AbortController ile birleştirin. Kullanıcı arayüzünü duyarlı ve bilgilendirici tutmak için inputValue !== debouncedQuery olduğunda yükleme durumunu gösterin.

Sıkça Sorulan Sorular

“Pratik Uygulamalar: Arama, Kaydırma, Yeniden Boyutlandırma” dersi ücretsiz mi?

Evet — “Pratik Uygulamalar: Arama, Kaydırma, Yeniden Boyutlandırma” 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.

“Pratik Uygulamalar: Arama, Kaydırma, Yeniden Boyutlandırma” dersinde ne öğreneceğim?

Gerçek bileşen örneklerinde arama girdilerine gecikmeli çalıştırma, kaydırma ve yeniden boyutlandırma dinleyicilerine ise hız sınırlama 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.

“Pratik Uygulamalar: Arama, Kaydırma, Yeniden Boyutlandırma” 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

  1. Arayüzlerde Debounce ve Throttle Neden Önemlidir
  2. Özel useDebounce Kancası Uygulama
  3. Özel useThrottle Kancası Uygulama
  4. Pratik Uygulamalar: Arama, Kaydırma, Yeniden Boyutlandırma
← React Academy Sayfasına Dön