FrontEnd Developer Road Map

Redux with React 2023 6 – useSelector Hook Kullanımı

Merhabalar.

Bu yazımda, oluşturduğum store’daki state değerimi alıp istediğim jsx dosyam içinde kullanabilmeye bakacağız.

Bu redux store’unu istediğim yerde yakalayabilmem için yine react-redux paketinin bir hook’u olan useSelector Hook’unu kullanmam gerekir.

useSelector Hook’u Nedir?

useSelector hook’u, React Redux kütüphanesindeki bir hook’tur ve Redux store’undan belirli bir parçayı seçmek için kullanılır. Bu hook, React bileşenlerinin Redux store’undan durum bilgisine erişmelerini sağlar.

Genel kullanımı şu şekildedir:

import { useSelector } from 'react-redux';

// ...

const selectedData = useSelector(selectorFunction);

selectorFunction parametresi, Redux store’dan almak istediğiniz durumu seçmek için kullanılır. Bu bir fonksiyon olabilir ve bu fonksiyon, Redux store durumunu alıp, bileşenin ihtiyaç duyduğu belirli bir parçayı seçer.

Örneğin, bir sayaç uygulamasında counter adlı bir durum varsa ve bu durumu seçmek istiyorsanız:

const counter = useSelector(state => state.counter);

Bu örnekte, state Redux store’unun tamamını temsil eder ve state.counter şeklinde kullanılarak counter durumu seçilir.

Bu hook, bileşenin sadece ihtiyaç duyduğu belirli durum parçalarını seçmesine olanak tanır. Böylece, gereksiz yeniden render’ları önleyerek performansı artırabilir. useSelector hook’u, Redux store’da herhangi bir değişiklik olduğunda otomatik olarak bileşeni günceller.

Kendi projemize bakalım şimdi.

Import useSelector

import { useSelector } from 'react-redux';

Store’daki Değeri Al

const counter = useSelector(state => state.counter);

Bu değeri jsx kodları içinde kullan.

<h1>Counter: {counter}</h1>

Kodlarımızın Tamamı

Counter.jsx

import React, { useState } from 'react';
import { useSelector } from 'react-redux';
import './Counter.css';

function Counter() {
    const counter = useSelector(state => state.counter);

    return (
        <div className="counter">
            <h1>Counter: {counter}</h1>
            <div className="button-container">
                <button>
                    Increase
                </button>
                <button>
                    Decrease
                </button>
            </div>
        </div>
    );
}

export default Counter;

Uygulama Test

Her şey istediğimiz gibi.

Bir sonraki yazımda butonlara basınca bu redux store’unu güncellemeyi görelim.

Görüşmek üzere.

Murat Bilginer

21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.

Share
Published by
Murat Bilginer

Recent Posts

Kedimiz Oly & FIP Süreci 11 – Oly Melek Oldu :'( Veda…

Hüzünlü bir selam. Bu yazı dizisine başlarken büyük umutlarım vardı. Oly’nin FIP durumunu erken teşhis…

1 hafta ago

Kedimiz Oly & FIP Süreci 10 – Oly’nin PCR Sonucu Çıktı FCov Pozitif…

Selamlar, bu yazımda sizlere Oly’nin çıkan PCR sonucu ve geçtiğimiz bir haftada hastalığın genel seyrinden…

1 hafta ago

Kedimiz Oly & FIP Süreci 9 – 1 Haftalık GS İğnesi Serüveni – Oly İyileşiyor mu?

Selamlar, bu yazımda Oly'nin 1 hafta boyunca olduğu GS iğnesi, yaşanan değişimleri anlatmaya çalışacağım. PCR…

2 hafta ago

Kedimiz Oly & FIP Süreci 8 – Yeniden Hayvan Hastanesi – Sonuç Kontrolü ve Sonrası…

Selamlar, bu yazımda Hemogram ve Biyokimya sonuçlarımızı göstermek için İÜCHH'ne tekrar gidişimizi ve sonrasını anlatacağım.…

2 hafta ago

Kedimiz Oly & FIP Süreci 7 – GS İğnesine Başlama Kararımız ve Oly’de Dikkat Ettiklerimiz

Selamlar, bu yazımda GS iğnesine başlama kararımızı ve Oly’de bu süreçte nelere dikkat ediyor, neler…

2 hafta ago

Kedimiz Oly & FIP Süreci 6 – İstanbul Üniversitesi Cerrahpaşa Hayvan Hastanesi Serüveni ve Sonrası

Selamlar, bu yazımda İÜCHH'deki tedavi sürecimiz ve sonrasında yaşananlardan bahsetmeye çalışacağım. 20.06.2025 Cuma günü saat…

2 hafta ago