Durum Yönetimi
React ve Jotai, kod tabanında durumu yönetir.Durumu depolamak için Jotai atomlarını kullanın
Durumunuzu depolamak için ihtiyaç duyduğunuz kadar atom oluşturmak iyi bir uygulamadır.Durum saklamak için useRef kullanmayın.
Durum saklamak için useRef kullanmaktan kaçının.
Durum saklamak istiyorsanız, useState veya useAtomState ile Jotai atomlarını kullanmalısınız.
Bazı yeniden render edilmelerin olmasını önlemek için useRef’e ihtiyacınız varmış gibi hissediyorsanız, yeniden render yönetimi konusuna bakın.
Yeniden render yönetimi
React’ta yeniden render’ları yönetmek zor olabilir. Gereksiz yeniden render’ları önlemek için izlenecek bazı kurallar burada. Yeniden render’ları her zaman önleyebileceğinizi unutmayın, olayların nedenini anlayarak.Kök seviyesinde çalışın
Yeni özelliklerde yeniden render’ları önlemek, onları kök seviyesinde ortadan kaldırarak artık kolaylaştı.PageChangeEffect yan bileşeni, sayfa değişikliği sırasında yürütülecek tüm mantığı içeren tek bir useEffect barındırır.
Bu şekilde, yalnızca bir yerin yeniden render tetikleyebileceğini bilirsiniz.
Kod tabanına useEffect eklemeden önce iki kez düşünün.
Yeniden render’lar çoğunlukla gereksiz useEffect’lerden kaynaklanır.
useEffect’e ihtiyacınız olup olmadığını düşünmelisiniz ya da mantığı bir olay işleyici fonksiyonuna taşıyabilirsiniz.
Genellikle mantığı handleClick veya handleChange gibi fonksiyonlara taşımayı kolay bulursunuz.
Bunları onCompleted, onError, vb. gibi Apollo kitaplıklarında da bulabilirsiniz.
useEffect veya veri çekme mantığını çıkarmak için bir yan bileşen kullanın.
Kök bileşenize bir useEffect eklemeniz gerektiğini hissediyorsanız, bunu bir yan bileşene çıkarmayı düşünmelisiniz.
Aynısını Apollo kancaları ile veri çekme mantığı için de uygulayabilirsiniz.
Atom aile durumlarını ve seçimcilerini kullanın
Atom aile durumları ve seçimcileri, yeniden render’ları önlemenin harika bir yoludur. Bir öğe listesini saklamanız gerektiğinde kullanılabilirdir.React.memo(MyComponent) kullanmamalısınız.
React.memo() kullanmaktan kaçının çünkü bu yeniden render’ın nedenini çözmez, bunun yerine yeniden render zincirini kırar, bu da beklenmeyen davranışlara yol açabilir ve kodun yeniden faktör edilmesini çok zor hale getirebilir.
useCallback veya useMemo kullanımını sınırlayın.
Genellikle gerekli değildir ve performans kazanımı farkedilemeyecek kadar az olduğu için kodun okunmasını ve bakımını zorlaştırır.
Console.log’lar
console.log ifadeleri geliştirirken değerlidir, değişken değerleri ve kod akışı hakkında gerçek zamanlı yanıtlar sağlar. Ancak, üretim kodunda bırakmak çeşitli sorunlara yol açabilir:
- Performans: Aşırı loglama, özellikle istemci tarafı uygulamalarda çalışma zamanı performansını etkileyebilir.
- Güvenlik: Hassas verileri loglama, tarayıcı konsolunu inceleyen herkes için kritik bilgilerin açığa çıkmasına neden olabilir.
- Temizlik: Konsolu loglarla doldurmak, geliştiricilerin veya araçların görmesi gereken önemli uyarıları veya hataları gizleyebilir.
- Profesyonellik: Konsolu kontrol eden son kullanıcılar veya müşteriler, birçok log ifadesi gördüğünde kodun kalitesini ve detaycılığını sorgulayabilir.
console.logları kaldırdığınızdan emin olun.
İsimlendirme
Değişken Adlandırma
Değişken adları değişkenin amacını veya işlevini doğru bir şekilde tanımlamalıdır.Genel adlar sorunu
Programlamada genel adlar ideal değildir çünkü kesinlik eksikliği nedeniyle belirsizlik ve kod okunabilirliğinin azalmasına neden olabilir. Bu tür adlar, değişkenin veya fonksiyonun amacını iletmede başarısız olur, geliştiricilerin kodun amacını daha derin bir araştırma yapmadan anlamalarını zorlaştırır. Bu, artan hata ayıklama süresi, hatalara eğilimli olma ve bakım ve işbirliği zorluklarına yol açabilir. Öte yandan, açıklayıcı adlandırma, kodu kendi kendini açıklayıcı hale getirir ve gezilebilirliği artırarak kod kalitesini ve geliştirici verimliliğini artırır.Değişken adlarında kaçınılması gereken bazı kelimeler
- kukla
Olay işleyicileri
Olay işleyici adlarıhandle ile başlamalı, bileşen props’larında olayları adlandırmak için on bir ön ek olarak kullanılmaktadır.
Opsiyonel Props
Opsiyonel bir prop için varsayılan değeri geçmekten kaçının. ÖRNEK Aşağıda tanımlananEmailField bileşeni alın:
Bileşenleri props olarak geçirme
Mümkün olduğunca, bileşenleri kendi içinde istemsiz geçen bileşenler olarak gönderin, böylece çocuklar hangi props’ları geçmeleri gerektiğine kendileri karar verebilirler. Bunun en yaygın örneği simge bileşenleridir:<MyIcon> ile örnekleyebilirsiniz.
Prop Taşıma: Minimumda Tutun
React bağlamında prop taşıma, durum değişkenlerini ve ayarlayıcılarını, aracı bileşenler kullanmasalar bile birçok bileşen katmanı aracılığıyla aktarma uygulamasına atıfta bulunur. Bazen gerekli olmakla birlikte, aşırı prop taşıma şu durumlara yol açabilir:- Azalan Okunabilirlik: Bir prop’un nereden kaynaklandığını veya nerede kullanıldığını izlemek, derin bir şekilde iç içe geçmiş bir bileşen yapısında karışık hale gelebilir.
- Bakım Zorlukları: Bir bileşenin prop yapısındaki değişiklikler, prop’u doğrudan kullanmasalar bile, birden fazla bileşende ayarlamalar yapılmasını gerektirebilir.
- Azalan Bileşen Yeniden Kullanılabilirliği: Çok fazla props’u yalnızca aşağıya aktarma amacıyla alan bir bileşen, daha az genel amaçlı hale gelir ve farklı bağlamlarda yeniden kullanılması zorlaşır.