React Hooks Nedir?
React Hooks Neden Geliştirildi?
2.1 React İçerisinde Ne Tür Bileşenler Bulunuyor ?
2.2 Class Component ile ilgili Sorun Nedir ?
useState Nedir?
useEffect Nedir?
4.1 Nedir?
4.2 useEffect İçerisinden State Güncellenirse
4.3 useEffect İçerisinde SideEffect Bağımlılıklarını Temizlemek
4.4 useEffect ile farklı props bağımlılıklarını ve bunların side effectlerini yönetmek
useContext Nedir?
useReducer Nedir?
useCallback Nedir?
useMemo Nedir?
useRef Nedir?
useImperativeHandle Nedir?
useLayoutEffect Nedir?
useDebugValue Nedir?
Hook ne demek ? Kanca. Kodda bir yerlere kanca atmak. Yani ortak bir takım fonksiyonlara kanca atarak bileşenimizi güç ve yetenek kazandırmak anlamına geliyor.
Aspect Oriented Programming veya Cross-Cut konularına aşinaysanız, bu kavramlar size yabancı gelmeyecektir belkide. Bazı yetenekler bileşenler tarafından ortak bir şekilde kullanılma ihtiyacı olur. Burada ortak yeteneğin kod mantığının paylaşımında 4 farklı yöntem bulunur.
Kod paylaşımında Inheritance mantığının UI yapıları için uygun olmadığını daha çok Model yapıları için daha uygun olduğunu düşünebilirsiniz.
Bundan dolayı kod paylaşımında UI için 3 mantıklı yöntem bulunuyor. Bunlar HoC , Render Props ve Hooks lar bulunuyor. Bu yöntemlerin birbirlerine göre avantaj ve dezavantajları bulunuyor. İlerleyen konularda bunlara değiniyor olacağım
https://www.dotconferences.com/2019/12/evan-you-state-of-components (UI Components Works)
Ortak kod dediğimiz measurable, themeable, filterable gibi ortak kodların oluyor olması. Peki aynı algoritma aynı iş mantığı işletilecektir, biz geliştiriciler bunu Fonksiyonlara(Yetenekleri) yazsak , bileşenler bunlara kanca atsa ve kullansa nasıl olur?
Not: Hemen birileri çıkıp Util JS yazıp, içerisinden fonksiyon çağırmaktan ne farkı var diye düşünebilir. ve ileride göreceğimiz üzerine burada üzerinde çalıştığımız kısımlar sadece kod değil biz aynı zamanda React’ın bize sağladığı API’leri View oluşturmak için bu fonksiyonlar içerisinde kullanmamız gerekiyor.
React da bileşenlerinin daha light-weight(hafif) fonksiyon bileşenler olarak geliştirilmesi düşüncesi var. Yeri gelince de ihtiyacı duyduğu kütüphanelerden faydalanmak için use yani ilgili fonksiyonu kullanacağı kancayı attığınız yapıları kullanmaya istiyorlar.
Biraz beyin fırtınası yapalım. React Geliştireceğimiz UI Bileşenlerin nasıl yeteneklere ihtiyacı olabilir.
Benim kafamda aşağıdaki resimdekine benzer bir yapı oluşuyor. Bileşenler bu yeteneklere use… ile Hook (Kanca) atıyorlar.
Not: Diyebilirsiniz Class Component (Bileşenlerde) kalıtım kullanmadan High Order Function veya Render Props ile, Chain yöntemleri ile bileşenlere bu yetenekleri kazandırabiliyorduk. Doğru uzun zamandır bu yöntemleri kullanıyoruz. Fakat bunun 2 dezavantajı bulunuyor.
E-Kitabın devamını site üyeleri Download düğmesine basarak pdf olarak indirip okuyabilirler.