Öneri Listelerinde Klavye ile Gezinme
Öneriler arasında fare kullanmadan gezinip seçim yapmak için ArrowUp, ArrowDown, Enter ve Escape tuşlarını yönetin
Öneri Listelerinde Klavye ile Gezinme, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 2. 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.
Girişte onKeyDown İşleme
Klavye işleyicisini giriş öğesindeki onKeyDown olayına bağlayın; bunu onKeyPress (kullanımdan kaldırılmış) veya onKeyUp olayına bağlamayın. keyDown, karakter girişte görünmeden önce çalışır; bu da ArrowDown, ArrowUp, Giriş ve Kaçış tuşlarını varsayılan tarayıcı etkileri oluşmadan önce yakalamanızı sağlar.
ArrowDown Tuşu Davranışı
Kullanıcı ArrowDown tuşuna bastığında selectedIndex değerini 1 artırın ve bunu suggestions.length - 1 değerinde sabitleyin: setSelectedIndex(prev => Math.min(prev + 1, suggestions.length - 1)). Ayrıca imlecin giriş metninin sonuna atlamasını önlemek için e.preventDefault() çağırın; bu, metin girişlerinde ArrowDown tuşunun varsayılan tarayıcı davranışıdır.
ArrowUp Tuşu Davranışı
Kullanıcı ArrowUp tuşuna bastığında selectedIndex değerini 1 azaltın ve bunu en az 0 olacak şekilde sabitleyin: setSelectedIndex(prev => Math.max(prev - 1, 0)). Ayrıca 0 dizininin üzerine çıkıldığında değeri -1'e (seçim yok) sabitlemeyi seçebilirsiniz; bu, kullanıcının seçimi kaldırıp özgürce yazmaya dönmesini sağlar.
Giriş Tuşu Davranışı
Giriş tuşuna basıldığında ve selectedIndex >= 0 olduğunda vurgulanan öneriyi seçin: inputValue değerini suggestions[selectedIndex] olarak ayarlayın, açılır listeyi kapatın ve selectedIndex değerini -1 olarak sıfırlayın. Hiçbir öneri vurgulanmamışsa (selectedIndex -1 ise) normal form gönderme veya arama işleminin sürmesine izin verin.
Kaçış Tuşu Davranışı
Kaçış tuşuna basıldığında isOpen değerini false olarak ayarlayarak açılır listeyi kapatın ve selectedIndex değerini -1 olarak sıfırlayın. Giriş değerini temizlemeyin; kullanıcı yalnızca bir öneri seçmeden önerileri kapatmak ve yazdığı metni düzenlemeye devam etmek istiyor.
Sekme Tuşu Davranışı
Sekme tuşuna basıldığında açılır listeyi kapatın; çünkü tarayıcı zaten odağı bir sonraki odaklanılabilir öğeye taşıyacaktır. Sekme tuşunda isOpen değerini false olarak ayarlamak, odak girişten ayrıldıktan sonra açılır listenin açık kalmamasını sağlar. preventDefault() çağırmanız gerekmez; tarayıcının doğal sekme sırasını yönetmesine izin verin.
Seçili Satır için Görsel Vurgu
Vurgulanan öneri görsel olarak ayırt edilebilir olmalıdır. selectedIndex konumundaki öneriye etkin bir stil uygulayın: className={index === selectedIndex ? 'suggestion suggestion--active' : 'suggestion'}. Etkin durumda genellikle arka plan rengi değiştirilir; böylece Giriş tuşuna basıldığında hangi öğenin seçileceği açıkça görülür.
Seçili Öğeyi Görünür Alana Kaydırma
Öneri listesinde bir max-height varsa ve liste kaydırılabiliyorsa, klavye gezinmesi sırasında vurgulanan öğe ekranın dışına kayabilir. Önerilerin DOM öğelerini saklamak için bir başvuru dizisi kullanın ve selectedIndex her değiştiğinde listItemRefs.current[selectedIndex]?.scrollIntoView({ block: 'nearest' }) çağırın. nearest blok değeri, kaydırma miktarını en aza indirir.
Öneriler Değiştiğinde selectedIndex Değerini Eşzamanlama
Giriş değiştiğinde ve yeni bir filtrelenmiş liste göründüğünde selectedIndex değerini aynı durum güncellemesinde veya önerilere bağlı bir useEffect içinde -1 olarak sıfırlayın. Kaldırılmış öğelere işaret eden güncel olmayan dizinler, kullanıcının yanlış öneriyi seçmesine neden olur.
Tam Klavye Gezinme Akışı
Tam kullanıcı akışı şöyledir: kullanıcı filtrelemek için yazar, ArrowDown ilk öğeyi vurgular, ek ArrowDown tuşlarına basmak listede ilerletir, ArrowUp yukarı çıkarır, Giriş tuşu vurgulanan öğeyi seçer ve Kaçış tuşu seçim yapmadan kapatır. Bu akış, kullanıcıların otomatik tamamlama alanından beklediği tüm standart klavye etkileşimi kalıplarını kapsar.
Ok Tuşlarında Varsayılan Davranışı Önleme
Bir metin girişi içinde ArrowDown ve ArrowUp tuşlarını işlerken her zaman e.preventDefault() çağırın. Aksi hâlde ArrowDown metin imlecini sona, ArrowUp ise başa taşır. Bu imleç hareketleri, selectedIndex gezinmenizle çakışarak kafa karıştırıcı bir davranış oluşturur.
Klavye Gezinmesi Tuş Eşlemesi
Kullanıcı, selectedIndex = 2 konumunda bir öneri vurgulanmışken Giriş tuşuna bastığında ne olmalıdır?
Ders Özeti: Klavye ile Gezinme
Giriş alanında onKeyDown olayını işleyin. ArrowDown, selectedIndex değerini artırır (en yüksek değerle sınırlandırılır); ArrowUp azaltır (0 veya -1 ile sınırlandırılır); Enter, vurgulanan öğeyi seçer; Escape, seçim yapmadan kapatır; Tab, kapatır ve odağın tarayıcı tarafından taşınmasına izin verir. Ok tuşlarında her zaman preventDefault çağrısı yapın ve vurgulanan öğeyi görünür alana kaydırın.
Sıkça Sorulan Sorular
“Öneri Listelerinde Klavye ile Gezinme” dersi ücretsiz mi?
Evet — “Öneri Listelerinde Klavye ile Gezinme” 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.
“Öneri Listelerinde Klavye ile Gezinme” dersinde ne öğreneceğim?
Öneriler arasında fare kullanmadan gezinip seçim yapmak için ArrowUp, ArrowDown, Enter ve Escape tuşlarını yönetin 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 2. dersidir.
“Öneri Listelerinde Klavye ile Gezinme” 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
- Öneri Listeli Denetimli Girdi
- Öneri Listelerinde Klavye ile Gezinme
- Debounce ile Eş Zamanlı Olmayan Öneriler
- Otomatik Tamamlama Bileşenlerinde Erişilebilirlik