React Hook'larının kullanımı, bileşenler arasında veri paylaşımını ve çoklu durumların yönetimini kolaylaştırır useState Hook'u, işlevsel bileşenlerde durumları yönetmek için kullanılır ve durum değişkenlerini güncellemeye olanak sağlar Bu sayede, bileşenler daha okunaklı ve anlaşılır hale gelirken, kod yazımını da azaltır Ayrıca useState, sınırlı miktarda durum değişkenleri için etkili bir araçtır Ancak, çok sayıda durum değişkenleri gerektiren bileşenlerde useReducer gibi daha etkili bir Hook kullanılması önerilir Sonuç olarak, useState Hook'u ile form elemanlarından kullanıcının girdiği verileri saklamak, sayfa içeriğini değiştirmek veya animasyonlu efektler oluşturmak gibi birçok işlem gerçekleştirebilirsiniz

React, günümüz web uygulamalarında oldukça popüler bir JavaScript kütüphanesi haline geldi. Bu nedenle, birçok Front-End geliştiricisi tarafından tercih edilen bir kütüphane haline geldi. React bileşenlerinin geliştirilmesinde React Hook'larının kullanımı, geliştiricilere birçok avantaj sağlıyor. Bu yazı, React bileşenlerinde React Hook'larının kullanımı ile ilgili birçok konuyu ele almaktadır.
Ne zaman Hook kullanmalısınız?
React Hook'larını kullanarak, çoklu durumları kolaylıkla yönetebilirsiniz. Böylece bileşenler arasında veri paylaşımı daha kolay hale gelir. Yaşam Döngüsü Yöntemlerine bağımlı olmadan, dilediğiniz gibi fonksiyonel bileşenler de kullanabilirsiniz. Hook'ları kullanmak, kodunuzun daha okunaklı ve anlaşılır hale gelmesini sağlar. Ayrıca, kodunuzu daha az yazarak daha fazla işlem yapabilmenizi de sağlar.
Bir başka önemli durum ise, Hook'lar, bileşenlerin re-render edilmesine neden olmazlar. Bu sayede, daha az işlem yapmanızı sağlarlar. Özetle, çoklu durumların yönetimi, yaşam döngüsü yöntemlerine bağımlı olmamak ve fonksiyonel bileşenler kullanmak için Hook'ları kullanmalısınız.
useState
useState Hook'u, işlevsel bileşenlerde durumları yönetmek için kullanılır. React bileşenleri her bir renderde yalnız bir durum içerebilir, bu nedenle useState, durum değişkenini saklamak ve gelecekteki renderlarda güncellemek için kullanılır. Bu, bir sınıf bileşeninde this.state kullanımının işlevsel bileşenlerde useState tarafından yerini aldığı anlamına gelir.
useState kullanılırken, bir durum değişkeni ve o değişkenin ilk değeri belirlenir. Bu durum değişkeni sonra, bileşenin içindeki herhangi bir yerde kullanılabilir. Ayrıca, durum değişkenini güncellemek için kullanılacak bir fonksiyon da belirlenir. Bu fonksiyon, durum değişkeni üzerinde yapılan işlemleri gerçekleştirerek bileşenin yeniden render edilmesini sağlar.
Bununla birlikte, useState kullanırken dikkat edilmesi gereken birkaç nokta vardır. İlk olarak, useState durum değişkenlerine sadece sınırlı miktarda birim atayabilir. Ayrıca, bellek kaçağı oluşumunu engellemek için bileşen unmounted (düşürülmüş) olduğunda durumu temizlemek önemlidir.
useState, çok sayıda durum değişkenleri olan bileşenlerde bazen karmaşık hale gelebilir. Bu durumda, useReducer gibi daha etkili bir Hook kullanılabilir. Ancak çoğu durumda, useState, işlevsel bileşenlerin durum yönetiminde etkili bir araçtır.
useState Hook'u nedir?
React Hook'larının en temelinden biri olan useState, durum değişkenlerini yönetmek için kullanılır. Bir bileşenin durumunu (state) yönetmek, bileşenin içinde tutulan değerleri değiştirmek ve bu değerleri ekranda göstermek amacıyla useState Hook'unu kullanabilirsiniz.
useState fonksiyonu, iki değer alır; birincisi, bileşen içinde saklanacak olan durum (state) değişkeni, ikincisi ise, bu durum değişkeninin başlangıç değeridir. Bu fonksiyon sayesinde bileşenin durumunu değiştirebilir, bu değişikliği ekran üzerinde göstererek kullanıcıya bilgi aktarabilirsiniz.
useState kullanarak, form elemanlarından kullanıcının girdiği verileri saklamak, sayfa içeriğini değiştirmek veya animasyonlu efektler oluşturmak gibi birçok işlem gerçekleştirebilirsiniz.
useState Nasıl Kullanılır?
useState kullanmak için öncelikle bir durum değişkeni tanımlanmalıdır. Bu durum değişkeni, bileşenin saklayacağı veriyi temsil eder. Daha sonra bu durum değişkenine başlangıç değeri verilmelidir. Başlangıç değeri, bileşen ilk kez render edildiğinde durum değişkeninde saklanacak değeri belirler.
Ardından, durumu güncellemek için bir fonksiyon tanımlanır. Bu fonksiyon, durum değişkeninde saklanacak veriyi günceller ve bileşeni yeniden render eder. Fonksiyon genellikle setDurumAdi şeklinde adlandırılır (örneğin setSayac). Bu fonksiyon, durum değişkenini güncellemek için kullanılır.
Örneğin, bir sayaç bileşeni yazalım. Bu bileşen, bir sayacı saklar ve arttırmak veya azaltmak için düğmeler içerir.
Kod | Açıklama |
---|---|
import React, {useState} from 'react'; function Sayac() { const [sayac, setSayac] = useState(0); return ( | Bu bileşen, bir sayacı oluşturur ve arttırmak veya azaltmak için düğmeler sağlar. useState kullanarak, sayacı durum değişkeninde saklarız. setSayac fonksiyonu, sayacın değerini değiştirir ve bileşeni yeniden render eder. |
useState ile Neler Yapabilirsiniz?
useState Hook'u, bir bileşen içinde saklanacak olan durumu yönetmekten sorumlu bir fonksiyondur. Bu nedenle, durum değişkeni güncelleme, formlar, animasyonlar gibi birçok işlemi kolaylıkla yapabilirsiniz.
Örneğin, bir butona tıklama olayına bağlı olarak durum değişkenini güncelleyebilirsiniz. Böylece, bileşenindeki durumu güncelleyebilirsiniz ve yeniden render edilmesini sağlayabilirsiniz.
Formlar için ise, kullanıcının girdiği verileri bir durum değişkeninde saklayabilir ve işleme sürecinde bu verilere kolayca erişebilirsiniz. Bu sayede, bir formun girdilerini doğrulama gibi işlemleri kolaylıkla yapabilirsiniz.
Aynı şekilde, animasyonlar için de durum değişkenleri kullanabilirsiniz. Örneğin, bir butona tıklandığında bir yükleme animasyonu oluşturabilir veya bir gönder düğmesine tıklandığında bir onay mesajı göstermek için bir animasyon oluşturabilirsiniz.
Bu nedenlerden dolayı, useState Hook'u React bileşenlerinde çok kullanışlıdır ve birçok işlemi kolaylıkla yapmanızı sağlar.
useEffect
useEffect Hook'u, React bileşenlerinde sıklıkla kullanılan bir başka Hook'tur. useEffect, bileşen yapıcı (constructor) ve bileşen içindeki durum değişkenleri değiştiğinde yapılacak işlemleri belirlemek için kullanılır. Bu nedenle, bileşenin durumunu güncellemek veya bileşen içindeki farklı işlemleri yapmak istediğinizde useEffect Hook'u kullanmanız gerekmektedir.
useEffect, iki parametre alır: biri bir fonksiyon, diğeri bir dizi. Fonksiyon, bileşen her yeniden render edildiğinde çalışır. Dizide, useEffect'in etkileşim içinde olduğu değişkenler listelenir. Eğer dizi boş bırakılırsa, useEffect her yeniden render edildiğinde çalışacaktır.
useEffect kullanırken dikkat etmeniz gereken birkaç husus bulunmaktadır. İlk olarak, useEffect fonksiyonunun bir sınırsız döngüye girmemesi için içinde kullanılan durum değişkenleri ve etkileşim içinde olduğu diğer değişkenleri doğru bir şekilde belirtmeniz gerekmektedir. Diğer bir husus ise, useEffect'in virgülle ayrılmış işlemler listesi olarak tanımlanabilecek bir fonksiyon dizisi almasıdır. Bu nedenle, useEffect fonksiyonunun etkileşim içinde olduğu bileşenler arasında veri paylaşımı yapılabilmektedir.
useEffect Hook'u, API çağrıları yapmak, bileşen yapısını değiştirmek, animasyon, bulanıklığı kaldırmak veya bileşen içindeki durumu güncellemek için kullanılabilir. Ayrıca bileşenler arasında veri paylaşımı yapmak için de kullanılabilir. useEffect fonksiyonu, React bileşenlerinde durum değişkenlerini güncelleme ve farklı işlemleri yapma açısından önemlidir.
useEffect Hook'u Nedir?
useEffect Hook'u, React bileşenlerinde yapılacak işlemleri belirlemek için kullanılır. Bu işlemler, bileşenin yapıcı (constructor) ve içindeki durum değişkenleri değiştiğinde gerçekleştirilir. useEffect Hook'u ile bir bileşenin render edilmesi sırasında belirli koşulları takip edip, o koşulda yapılacak işlemleri belirleyebilirsiniz.
useEffect bir veya birden çok koşula göre hareket edebilir. Bu koşullar fonksiyonu çağıran bağımlılık dizisinde yer alır. Bu dizideki bir değişiklik, fonksiyonu yeniden etkinleştirir.
Bileşenler her render edildiğinde useEffect fonksiyonu tetiklenir. Bu nedenle useEffect, bileşenin güncellemesi gerektiğinde yapılacak işlemleri de yönetebilir. useEffect, API isteklerini yönetmek, ani değişiklikler için animasyon uygulamak veya bileşenin güncellenmesi gerektiğinde bazı işlemleri yönetmek için uygun bir yöntemdir.
useEffect Nasıl Kullanılır?
useEffect, React bileşenleri içinde kullanılan önemli bir Hooks fonksiyonudur. useEffect kullanarak, bileşenin oluşturulması (birinci parametredeki fonksiyon) ve bileşendeki durum değişiklikleri (ikinci parametredeki dizi) anında takip edilebilir. useEffect fonksiyonu, componentdidmount, componentdidupdate ve componentwillunmount yaşam döngüsü yöntemlerinin yerini alır.
useEffect Hook'unu kullanırken, ilk önce bir fonksiyon tanımlamak gerekir. Bu fonksiyon, bileşen her yeniden render edildiğinde tetiklenecek olan işlemleri içermelidir. İkinci olarak, bir dizi tanımlanmalıdır. Bu dizi, useEffect Hook'unun herhangi bir yeniden düzenlenmemesi gereken değerlerini içerir.
Örneğin, bir bileşen, dizinin değerlerine bağlı olarak değişen bir API'den verileri getirirken, useEffect kullanımı oldukça uygundur. useEffect'in ilk parametresi, yapılacak API çağrısı gibi işlemleri içerir ve ikinci parametresi, API çağrısında kullanılan herhangi bir durumu içerir.
useEffect ile Neler Yapabilirsiniz?
useEffect Hook'u bileşenlerin içindeki durum değişkenleri değiştiğinde veya bileşen yeniden render edildiğinde çalışan işlevler atamanızı sağlar. useEffect kullandığınızda, bileşenler arası birçok işlemi kolaylıkla yapabilirsiniz. İşte useEffect ile yapabilecekleriniz:
- API Çağrısı Yapmak: useEffect ile, bileşenlerin render edilmesi için API çağırmak mümkündür.
- Animasyon: useEffect ile animasyon yapılabilir ve animasyonların bileşenler arasında nasıl paylaşılacağı belirlenebilir.
- Bileşen Yapısını Değiştirmek: useEffect ile bileşenin yapısını kolaylıkla değiştirebilirsiniz.
- Bulanıklığı Kaldırmak: useEffect ile sayfa yükleme hızını artırabilir ve UI'yı optimize edebilirsiniz.
- Bileşen İçindeki Durumu Güncellemek: useEffect ile bileşen içindeki durum değişkenlerini güncelleyebilirsiniz.
- Bileşenler Arasında Veri Paylaşımı Kurmak: useEffect ile bileşenler arasında kullanılan verileri paylaşabilirsiniz.
Eğer bileşenlerde bu işlemler gerçekleştirmek istiyorsanız, useEffect Hook'u kullanmanız gerekmektedir.
useContext
useContext Hook'u, React bileşenleri arasında paylaşılan verilere erişmek için kullanılır. Bu sayede, veriler bir bileşenden diğerine iletmek için prop drilling yöntemi kullanmak zorunda kalmazsınız. createContext() fonksiyonu ile bir bağlam (context) oluşturulur ve bileşen ağacının alt düzeylerine iletilir. Bu bağlam içindeki verilere useContext Hook'u ile erişmek mümkündür.
useContext kullanırken dikkat edilmesi gereken birkaç unsur vardır. Öncelikle, useContext kullanarak paylaşılan verilerin bozulmasını önlemek için, bağlam içindeki veriler değiştirilemez (immutable) olmalıdır. Ayrıca, bağlam içindeki verilerin paylaşılacağı bileşenlerde Context.Provider bileşeni kullanılmalıdır.
Örnek olarak, bir kullanıcının giriş durumunu yöneten bir durum değişkenini paylaşmak istediğimizi düşünelim. createContext() fonksiyonu kullanılarak bir bağlam oluşturulabilir:
const UserContext = React.createContext();
Ardından, bu bağlamı paylaşmak istediğimiz bileşenlerde Context.Provider kullanabiliriz:
<UserContext.Provider value={{isLoggedIn: true}}> <App /></UserContext.Provider>
Bağlam içindeki verilere erişmek için ise useContext Hook'u kullanılabilir:
const user = useContext(UserContext);console.log(user.isLoggedIn); // true
Bu şekilde, paylaşılan verilere erişmek için bileşenler arasında derinlemesine prop iletmek yerine, useContext Hook'u kullanarak daha temiz bir kod oluşturulabilir.
useContext Hook'u Nedir?
useContext Hook'u, React bileşenleri arasında veri paylaşımı yapmak için kullanılır. Bu sayede bileşenler arasında bilgi aktarımı kolaylaşır ve iletişim daha stabil hale gelir. useContext, React.createContext() ile oluşturulan bir nesnenin içeriğini kullanmak için kullanılır.
createContext ile oluşturulan bir bileşen, useContext ile başka bir bileşen içinde kullanılabilir. Bu sayede bileşenler arasında veri alışverişi yapmak daha kolay hale gelir. useContext kullanırken, context nesnesindeki verilere erişebilirsiniz. Bu, useState gibi bir durum değişkeni görevi görür. Ancak, useState ile sadece aynı bileşen içindeki verilere erişebilirsiniz.
useContext Nasıl Kullanılır?
useContext Hook'u, bileşenler arasındaki veri paylaşımını kolaylaştırır. Bu Hook sayesinde, verileri props aracılığıyla iletmek yerine, Context kullanarak verileri doğrudan tüketebilirsiniz. useContext Hook'unu kullanmak için createContext ile bir bileşen oluşturun ve içinde paylaşılmak istenen verileri belirtin. createContext ile oluşturulan bu bileşen, useContext Hook'uyla başka bir bileşen içinde kullanılabilir hale gelir.
Örneğin, bir tema bileşeni oluşturmak istediğinizi varsayalım ve bu bileşenin kullanıldığı sayfaların tema rengini, arka plan rengini ve yazı tipi boyutunu belirlemesini istiyorsunuz. createContext ile bir Theme bileşeni oluşturabilir ve içinde bu özelliklere ait verileri tanımlayabilirsiniz. Daha sonra, useContext Hook'uyla bu bileşeni başka sayfalarda kullanabilirsiniz.
Ayrıca, useContext Hook'unu kullanarak, bileşen hiyerarşisi içinde yukarıya doğru veri aktarımı yapmak da mümkündür. Böylece, alt bileşenlerde üst bileşenlerden gelen verilere erişmek daha kolay hale gelir. Bu da kod tekrarını önler ve veri iletişimini daha etkili hale getirir.
Kısacası, useContext Hook'u, veri yönetimini daha verimli hale getiren bir React Hook'dur. createContext ile oluşturulan bileşenler, useContext ile başka bileşenler içinde kullanılabilir hale gelir ve veri paylaşımı daha kolay hale gelir. Bu sayede, kod tekrarı önlenir ve veri iletişimi daha etkili hale gelir.
useContext ile Neler Yapabilirsiniz?
useContext Hook'u, bileşenler arasında veri paylaşımını kolaylaştırır. Örneğin, bir ana bileşen ve onun alt bileşenleri varsa ve sadece ana bileşen içindeki bir veriyi alt bileşenlerle paylaşmak istiyorsanız, useContext kullanabilirsiniz.
Bu veri paylaşımı, alt bileşenlerin yapısını bozmadan gerçekleştirilebilir. Örneğin, bir tema ve alt bileşenler bir dizi buton ve etiket içeriyorsa, temaContext içinde tema özelliği tutulabilir ve alt bileşenler, önceden belirlenmiş temayı bir temaContext ile paylaşabilir.
Bu şekilde, bileşenler arasında veri tamamen tek yönlü olmayabilir ve ana bileşenlerin yapısı alt bileşenlere dağıtılabilir. Bu, kodun yeniden kullanılabilirliğini ve bakımını kolaylaştırır ve sonuç olarak daha iyi bir okunabilirlik sağlar.
Ayrıca, useContext kullanarak, dasiykiye bağlı kalmadan bileşenler arasında veri paylaşımı yapabilirsiniz. Bu, işlerde daha fazla esneklik sağlar ve bileşenler arası veri paylaşımına daha fazla kontrol sağlar.
Sonuç olarak, useContext Hook'u, bileşenler arasında veri paylaşımını kolaylaştıran etkili bir araçtır. Veri paylaşımı, bileşenler arasındaki iş akışını yönetirken kodun okunabilirliğini ve yeniden kullanılabilirliğini de artırır.
useReducer
React bileşenlerinde karmaşık durumları yönetmek için kullanılan bir React Hook'u olan useReducer, useState Hook'unun bir varyasyonudur. Kullanımı için, öncelikle bir `reducer` fonksiyonu oluşturulmalıdır. Bu fonksiyonun iki parametresi olmalıdır; birinci parametre, mevcut durumu temsil ederken, ikinci parametre ise durumu güncellemek için kullanılır. Durum değişimleri, reducer fonksiyonuna işlem olarak gönderilir ve nihai durum, bileşenin etkileşimleri sonucunda elde edilir.
useReducer, karmaşık durumların yönetimi konusunda useState'dan daha verimlidir. Özellikle, birden fazla durum değişkeni devreye girdiğinde kullanılması önerilir. Örneğin, bir form oluşturduğunuzda, kullanıcının girdiği verileri yönetmek için birden fazla durum değişkeni kullanmanız gerekebilir. Bu tür durumlarda, useReducer kullanarak kodunuzu daha verimli ve organize edilmiş hale getirebilirsiniz.
Dikkat edilmesi gereken bir diğer konu, reducer fonksiyonunun her zaman mevcut durumu döndürmesidir. Ayrıca, bu fonksiyonun yan etkileri veya backend işlemleri gerçekleştirmemesi gerekir. Bu yöntem, sadece durum değişikliklerinin yönetimi için bir araç olarak kullanılmalıdır.
Sonuç olarak, React bileşenlerinde karmaşık durumları yönetmek için useReducer Hook'unu kullanmak oldukça avantajlıdır. Ancak, kullanırken dikkatli olmak ve yan etkileri önlemek gerekmektedir. Bu sayede, kodunuzu daha verimli ve organize bir şekilde yönetebilirsiniz.
useReducer Hook'u Nedir?
useReducer Hook'u, React bileşenleri içinde karmaşık durumları yönetmek için kullanılan bir fonksiyondur. Kullanımı, durum değişkeni ve durumu güncellemek için bir fonksiyonun yanı sıra, sıfırıncı argüman olarak bir başlangıç durumu ve ikinci argüman olarak ise bir işlev alır.
Bu Hook mevcut iki parametreyi işlemek için bir işlev sağlar. İlk olarak, mevcut durumun ve işlevin uygulanmasıdır. İkinci olarak ise işlevin çalıştığı ve bileşenin durumunu güncellediği durumu alır. Böylece, her state değiştiğinde bileşen yeniden oluşturulması gerektiği yerine, useReducer durumu değiştirebilir ve ardından bileşenin yeniden yaratılmasını gerektiren durumlarda bileşenler arası bağlantıyı koruyabilir.
useReducer Hook'u, useState ile benzerdir, ancak daha karmaşık durumlarda daha etkili bir seçenektir. useMemo ve useCallback gibi optimizasyon teknikleri ile birleştirildiğinde, performansı artırabilir ve karmaşık bileşenler üzerinde iyi bir performans gösterir.
useReducer Nasıl Kullanılır?
useState ile yapılan işlemlerin aynısı useReducer için de geçerlidir, fakat useReducer, daha karmaşık durumlar için daha verimlidir. Bir state ve dispatch anahtar kelimeleri ile bir obje dönüşü sağlar.
Bu objenin ilk elemanı mevcut state durumunu, ikinci elemanı ise bu state durumunu güncellemek için kullanılacak olan dispatch fonksiyonunu içerir.
Reducer fonksiyonu, state ve action fonksiyonlarını kabul eder ve yeni bir state durumu döndürür. Bu fonksiyon, yalnızca yeşil gibi geri dönen yeni state durumu için gerekli işleme odaklanır.
Kod Örneği |
---|
const initialState = { count: 0 };function reducer(state, action) { switch (action.type) { case 'increment': return { count: state.count + 1 }; case 'decrement': return { count: state.count - 1 }; default: throw new Error(); }}function Counter() { const [state, dispatch] = useReducer(reducer, initialState); return ( <> Count: {state.count} <button onClick={() => dispatch({type: 'decrement'})}>- <button onClick={() => dispatch({type: 'increment'})}>+ > );} |
Yukarıdaki kod örneğinde, initialState değişkeni tanımlanır ve reducer fonksiyonu state ve action alarak yeni bir state döndürür.
Counter bileşeni, state ve dispatch değişkenlerini kullanarak kullanıcı tarafından sayılsanı arttırmak veya azaltmak için iki düğme içerir. 'useReducer' örneğinde görüleceği gibi, bu iki değişken bileşenlerde kullanılabilecek karmaşık durumlar için daha verimli bir alternatif olabilir.
useReducer ile Neler Yapabilirsiniz?
useReducer, karmaşık durumları daha verimli bir şekilde yönetebilmenizi sağlar. Bu hook'u kullanarak, aşağıdaki işlemleri yapabilirsiniz:
- Verileri önceden işleme yapabilirsiniz: useReducer, durum değişiklikleri için önceden tanımlanmış bir işlev alır. Bu işlev, güncellemeyi yapmadan önce verileri işleyebilir ve durum değişkenini güncelleyebilir.
- Karmaşık durumların yönetimini daha kolay hale getirebilirsiniz: Reducer kullanarak, örneğin bir dizi nesneyi veya derinlemesine bir nesne yapısını yönetmek gibi karmaşık durumları daha kolay bir şekilde yönetebilirsiniz.
- State değişikliklerinin senkronize olmasını sağlayabilirsiniz: useReducer, useState ile karşılaştırıldığında değişikliklerin daha iyi senkronize edilmesini sağlar.
- Karmaşık formları kolayca yönetebilirsiniz: useReducer kullanarak, form verilerini daha kolay ve yapısı daha anlaşılır bir şekilde yönetebilirsiniz.
Genel olarak, useReducer, bileşenlerinizde karmaşık durumları daha verimli bir şekilde yönetmeniz için ideal bir araçtır. Bu sayede durum değişikliklerini takip etmek ve güncellemeleri yapmak daha kolay hale gelir.