Ana içeriğe atla

Mala Anlatır Gibi React — 1: Kurulum ve Hooks.

Mala Anlatır Gibi React — 1: Kurulum ve Hooks.

React kurulumu (2 yöntem)

React’ı kurmadan önce, Nodejs’i kurmalısınız. Yoksa yükeyemez ve çalıştıramazsınız.

Sonra bir terminal’e (CMD ya da Shell) girip:

CRA için: “npx create-react-app my-react-app” (1. Yöntem)

Vite kurulumu için: “npm create vite@latest my-react-app — template react” (2. Yöntem)

useState hook’u kullanımı

useState, bir değer tutar meselâ useState(‘merhaba takipçilerim’) gibi, bakın:

Görsel, 1.

Bunun çıktısı 0 olacaktır. Çünkü useState’de (0) dedik. Eğer 0 yerine “Merhaba takipçilerim” yazsaydık ekrana o gelecekti.

İyi de bu ne işe yarayacak?” dediğinizi duyar gibiyim. Verileri manipüle etmemize yarar.

Yani verileri tutarız ve sonra değiştiririz.

Hadi yapalım. Normal HTML’de, onclick ile açtığımız tagı burada onClick ile açacağız ve içerisine fonksiyon vereceğiz.

Yani şöyle önizleme yapalım, projeye geçmeden önce: onClick={()=>}

Şimdi proje de nasıl kullanacağımıza bakalım.

Görsel, 2.

Eğer, setSayi demekseydik, console.log(“merhaba”) deseydik yine çalışacaktı.

setSayi() nedir, veriyi güncelleyeceğimiz bir fonksiyon. Yani button’a her tıkladığımız da, sayı bir bir artacaktır. Yani bastığınız da 1, sonra ki bastığınız da 2 olacaktır.

Peki ya bu adlar sabit mi? Hayır.

const [] = useState() sabittir.

const [xd, setXd] = useState(‘merhaba’)

yani fonksiyon parametresinde şu yol izlenir: set + büyük harfle başlayan önce ki değişken adı. “Adin, setAdin” gibi.

Buraya bir javascript’de yapabildiğiniz, her şeyi yapabilirsiniz.

useEffect hook’u kullanımı

useEffect, bir while döngüsü düşünün. Javascript yazdıysanız eğer. Ya da farklı bir dil. Durmadan dönen ve içinde yazılan şeyleri dönen bir hook’dur. En kaba tâbir ile.

Görsel, 3.

(Görsel, 3) böyle tanımladığı vâkit, durmadan döner. useEffect(()=>{}, [])

Görsel, 4.

useEffect(()=>{}, [degisken]) Bu tür ise, degisken her değiştiğin de, render edilir. (Görsel, 4.)

Kod da yaptığımız şu: Her render edildiğin de, consola sayıyı yaz.

Şimdi şu yukarıda ki sayımızı kontrol ettirelim.

Görsel, 5.

(Görsel, 5) Burada dedik ki: sayi eğer 5 ise, consola “5 oldu” yazdır.

useRef hook’u kullanımı

useRef, aynı document.querySelector() ile aynı görevi görür desek yanlış olmaz.

Görsel, 6.

ref.current. ile birlikte gelecek bir javascript kodunu yazabilirsiniz, aynı .querySelector() ile seçtikten sonra yaptığınız gibi.

Görsel, 7.

Etikete, ref’i verdik. Ve artık istediğimiz gibi kullanabiliriz. Kullanımı kolay ve basittir.

useContext hook’u kullanımı

useContext, bir context oluşturmanızı sağlar. Daha çok veri tutmaya yarar desem kabaca olur gibi.

Görsel, 8.

Burada bir context yaratıyoruz. Kullandıkça bu kodu anlayacaksınız.

Buradakiler;

  • NameContext = createContext() : Bir context yaratıyoruz.
  • NameProvider ()=>({children}): Bu bir fonksiyon ve içine children diye bir değer (parametre) alıyor.
  • const values = {name, setName}: useState ile yarattığımız değer ve fonksiyonu, bir array içine saklıyoruz.
  • <NameContext.Provider>: ise Context provider’ıdır. Bunu açıyoruz.
  • <NameContext.Provider value={values}> ise context’e değerleri gönderiyoruz.
  • {children} ise gönderdiğimiz değeri alır. Yani <App />’ı gönderdiğimiz de bunu alıyor.
  • useContext(NameContext) : Yarattığımız NameContext’i kullan diyoruz.
Görsel, 9.

<NameProvider> ile <App />’i sarıyoruz çünkü, bilgilerin bu component içerisine akmasını istiyoruz.

Görsel, 10.

Sonra bunlar üzerinde bir değişiklik yapmak için ise (Görsel, 10) gibi import edip, aynı useState’deki gibi kullanıyoruz fakat bu safer değişkenleri {} ile alıyoruz. Ekrana {name} ile bastırdık zâten (Görsel, 10.).

Peki ya, “Bunun useState ile farkı ne?” derseniz.. useState ile componentlar arası bir veri tutamazsınız. Fakat bu context kodu ile tutabilirsiniz.

useReducer hook’u kullanımı

useReducer, aynı useState gibidir fakat daha düzenli state yapmamızı sağlar.

Görsel, 11.

useReducer(dispatch, state) alır. Dispatch bir fonksiyon alır ve parametre olarak da state ve action alır.

State, object olarak tutulur. [state, dispatch] içerisindeki state ile veriyi alıyoruz, dispatch ile veriyi güncelliyoruz.

switch case ile ise gelen veriyi kontrol ettirip, return ile veriyi geri döndürürüz. Eğer “arttir”ın altına console.log(‘oldu’) desek, bu consola basılacaktı.

Kullanıma bir örnek:

Görsel, 12.

dispatch({type: “arttir”}) dersek yukarıda gördüğünüz switch içindeki case’i çalıştıracaktır.

Yorumlar

Bu blogdaki popüler yayınlar

Yıldırım Beyazıd ve Emir Timurlenk Savaşı

YILDIRIM BEYAZID VE EMİR TİMUR LENK SAVAŞI Ankara Savaşı (28 Temmuz 1402) Cengiz Han'ın vârisi olma iddiası ile çıkan Emir Timur. Beyazı'dın egemen olmasını kabul etmiyor. Onu küçümsüyor. Timur'un tahtını ele geçirmek için isyan başlatan   ve Timur Hindistan seferinden gelince bizzat kendisi tarafından kovulan Diyarbakır Beyi İlhan Ahmet Celâyir, Osmanlı'ya sığınmıştı. Epey Timur ve Beyazıd'ın arası gergindi. Fakat Timur kendi ırkından, dininden olan Osmanlı’ya saldırmak istemiyordu.   Timur’a tabî olan Mutahharten’ın ailesini Bursa’ya esir olarak gönderen Beyazid ile Timur’un arası açılmıştı.   “ Timur, kendisini sadece dünya üzerinde ulaşabileceği yere kadar hırsını doyurmak için Allah tarafından gönderilen “Allah’ın kulu” olarak değil, Türk halkının da gerçek ve tek temsilcisi olarak görüyordu. Yörüklerin bol paçalı şalvarları içinde, başında yüksek keçe başlığı ile tam bir Türk gibi giyinirdi.. Sarayı’nda sadece Türkçe konuşulur ve Türkçe yazı yazılır...

Türkiye, Filistin ve Araplar: Kıbrıs Sorunu

 Türkiye, Filistin ve Araplar: Kıbrıs Sorunu Bu konu, Filistin’in şuanki devlet başkanı olan Mahmut Abbas’ın, Rum Yönetimi’ni desteklemesiyle başlamıyor. Irak, 1957'de Yunanistan Devleti’yle görüşüp Kıbrıs’la ilgili ortak hareket kararı almışlardır. Aynı yılın Aralık ayı’nda gerçekleşen Birleşmiş Milletler toplantısında Kıbrıs Sorunu’nda Türkiye’ye karşı oy kullanırlar. Irak bununla da sınırlı kalmaz, Yunan desteğini almasıyla birlikte Türkiye’ye karşı Petrol borcunu da ödemez. (Musul Vilayeti’den gelen %10'luk Petrol geliri.) Ayrıca Türkiye’nin çoğu Projesine de karşı çıkar. Komünist Sovyetler Birliği yanlısı bir devlet kuran Suriye ve Mısır (Birleşik Arap Cumhuriyeti), Türkiye’ye karşı bir rakip hâline gelirken, Sovyetlerin Türkiye’yi kıstırma politikasına destek verirler. Türkiye bu durumda İsrail’le ilişkilerini sıkılaştırır fakat Türkiye bu durumda bile suçlu hâline gelir. Hiçbir konu da Türkiye’yi desteklemeyen ve Türkleri yok etmek için gâvuru-Yahudi’yi bile destekleyen...

Filistin’in iki yüzü: PKK ve ASALA

  Filistin’in iki yüzü: PKK ve ASALA Diyeceksiniz ki: “ Ama insanlar ölüyor, yazık değil mi! Ne acımasızsın! ” falan filan.. Hayır efendim, hayır! Elbette çocukların ölmesine üzülüyorum, bende bir insanım lâkin FKÖ’nün eğittiği PKK’nın kaç Türk çocuğunun canını aldığını ez mi geçiceğiz? Burada Suriye’nin PKK’ya verdiği desteği yazmayacağım çünkü zâten blogu’mda “ Sosyalist Bedevî: Esad ailesi, atalarının izinde ” diye bir yazı yazıp detaylıca anlatmıştım. Ayrıca FKÖ’nün kurucularından ve Filistin devlet başkanı Mahmut Abbas hakkında da burada bahsetmeyeceğiz. Çünkü daha önce bahsetmiştik, bakınız: “ Solcu bir Bedevî: Mahmud Abbas ” Gelgelelim, Filistin ve PKK ilişkilerine, şöyle anlatayım: PKK, Suriye-Filistin-Lübnan kampların’da eğitim görmüştü. PKK, Suriye Hükûmeti tarafından Bekaa Vadisi’ne yerleştirilmişti. Burada yetişmişler burada militanlaşmışlardı. Bizzat büyük Türkiye dostu (!) Yaser Arafat tarafından desteklenmişlerdi. (1) İsrail’e karşı operasyonlar da kullanılmışla...