React Bileşenleri İle State Management (Redux, MobX)

React Bileşenleri İle State Management (Redux, MobX)

React bileşenleri ile state yönetimi çok önemli bir konudur Redux ve MobX gibi araçlar, daha iyi bir state yönetimi deneyimi sunarlar Bu makalede, React bileşenlerinde Redux ve MobX gibi araçların nasıl kullanılacağını öğreneceksiniz Okumaya devam edin!

React Bileşenleri İle State Management (Redux, MobX)

Bir React uygulaması oluşturduğunuzda, uygulamanın state'ini yönetmek oldukça önemlidir. State management, uygulamanızdaki farklı bileşenler arasında state yönetimini sağlamak için kullanılan tekniklerdir.

Bu makale, React bileşenleri için en popüler state management araçları olan Redux ve MobX'ı anlatıyor. Redux, bileşenler arasında state yönetimini sağlamak için kullanılan bir library'dir. MobX da aynı işlevi yerine getirir, fakat Redux'a göre daha az karmaşıktır.


State Management Nedir?

State Management uygulamaların çalışma mekanizması içerisinde önemli bir yer tutar. Bir uygulamada bulunan tüm verilerin, durumların, işlemlerin toplandığı yapıya 'state' adı verilir. Bu state'i kontrol etmek ve yönetebilmek için kullanılan tekniklere ise 'State Management' denir. State Management teknikleri, uygulamanın performansının artırılmasına, hatasız bir şekilde işlev görmesine ve bakımının kolaylaştırılmasına yardımcı olur.


Redux Nedir ve Nasıl Kullanılır?

Redux, birçok React uygulamasında kullanılan state management aracıdır. State management, bir uygulamanın state'ini kontrol etmek ve yönetmek için kullanılan bir tekniktir. Redux, bileşenler arasında state yönetimini sağlar ve uygulamanın state'ini kontrol etmek için kullanılır.

Redux, uygulamanın state'ini tutmak için Redux Store adı verilen bir veri deposu kullanır. Bu, uygulamanın farklı bileşenlerinin aynı state'i görüntülemesine olanak tanır. Actions ve reducers ise Redux'ta önemli roller üstlenirler. Actions, uygulamanın state'ini değiştiren işlemlerdir, örneğin bir butona tıklama gibi. Reducers ise, bu eylemlere dayanarak uygulamanın state'ini değiştiren fonksiyonlardır.

Bir React projesinde Redux kullanmak için, redux ve react-redux paketleri yüklenmeli ve Redux Store oluşturulmalıdır. Bu, uygulamanın state'ini tutacak veri deposunu oluşturur. Actions ve reducers da ardından yazılmalıdır. Actions, farklı işlemleri yürütmek için yaratılırken, reducers, bu işlemlere göre state'i güncellemek için kullanılır.


Redux Store

Redux Store, uygulamanın state yönetimindeki en önemli yapı taşlarından biridir. Store, tüm state bilgilerini tutar ve manipüle eder. Store oluşturulduktan sonra, bu state bilgilerine herhangi bir bileşenden erişim sağlamak mümkündür.

Redux Store, içindeki state bilgisine sadece action'lar yardımıyla erişime izin verir. Bu şekilde state'in tahmin edilebilirliği ve kontrol edilebilirliği artar. Herhangi bir bileşen state'i manipüle edemez, sadece action'lar sayesinde Redux Store üzerinde bir değişiklik yapılabilir.

Redux Store oluşturmak oldukça kolaydır. Öncelikle, redux paketi yüklenmelidir. Daha sonra, createStore() fonksiyonu kullanılarak bir store oluşturulabilir. Bu fonksiyona reducers ve middleware'ler de dahil edilebilir.

import { createStore } from 'redux';
const initialState = { count: 0 };
const reducer = (state = initialState, action) => {
switch (action.type) {
case 'INCREMENT':
return { count: state.count + 1 };
case 'DECREMENT':
return { count: state.count - 1 };
default:
return state;
}
};
const store = createStore(reducer);

Bu örnekte, bir count state'i oluşturuldu ve iki farklı action ile artırma ve azaltma işlemleri yapılabilir hale getirildi. Ardından, createStore() fonksiyonu kullanılarak store oluşturuldu.

Redux Store, state yönetimindeki en önemli yapı taşlarından biri olduğu için, özellikle büyük ölçekli projelerde oldukça yararlıdır. Uygulamada meydana gelen değişiklikleri kolayca yönetilmesini ve kontrol edilmesini sağlar.


Actions

Actions, Redux'ta uygulamanın state'ini değiştiren işlemlerdir. Bir Actions, uygulamanın belirli bir parçası ile ilgili olabilir ve uygulamanın component'leri tarafından tetiklenebilir. Action'lar genellikle bir obje şeklinde gelir ve Reducer'lara göre belirli bir işlem yapar. Örneğin, bir kullanıcının giriş yapması bir Action olabilir ve bir kullanıcının sepete ürün ekleme işlemi bir diğer Action olabilir.

Bir Action oluşturulduğunda, dispatch fonksiyonu aracılığıyla bir Reducer'a gönderilir. Reducer, Action'ın durumu değiştirmesine karar verir ve bu duruma göre yeni bir state üretir. Bu yeni state, Store'da depolanır ve component'lere haber verilir. Component'ler, yeni state'in gösterilmesi için yeniden çizdirilir ve kullanıcıya gösterilir.

  • Actions, bir uygulamanın durumunu değiştirme işlemlerinin yapıldığı yerdir.
  • Actions genellikle bir obje şeklinde gelir ve sadece belirli bir işlem yapar.
  • Reducer'lar, Action tarafından üretilen yeni bir state oluşturur ve Store'da depolar.
  • Component'ler, Store'da depolanan yeni state üzerinden değişiklikleri algılar ve yeniden çizdirilir.

Reducers

Reducers, Redux'ta bulunan önemli bir konudur. Bu fonksiyonlar, Redux store'da bulunan state'in değişmesini sağlarlar. Peki, reducers nedir?

Reducers işlevleri, store'daki değişiklikleri belirlemektir. Bir reducers fonksiyonu, initialState, bir action ve state parametrelerini alır. Bu fonksiyon sayesinde store'da yer alan initialState'in yeni bir değişkeni oluşturulabilir.

Reducers, uygulamanın state'ini mutlak suretle değiştirmez, initialState'dan yeni bir nesne oluşturarak uygulamanın temel state yönetimini sağlar. Reducers, bir uygulamanın işlevselliğinde önemli bir rol oynarlar. Redux bileşenleriyle birlikte çalışarak store üzerinde kontrol sağlamayı mümkün kılarlar


Redux Kullanımı

Redux, state management aracı olarak kullanımı en yaygın olan teknolojilerden biridir ve birçok büyük React projesinde kullanılmaktadır. Redux, bileşenler arasında state yönetimi sağlayarak uygulamanın yönetimini kolaylaştırır. Redux kullanmak için, öncelikle redux ve react-redux paketlerini yüklemek gerekir.

Redux, Redux store adı verilen bir veri deposuna sahiptir. Store, uygulamanın tüm state'lerini tutar ve bileşenlerin state'lerine erişmesini kolaylaştırır. Store, bir veya birden fazla reducer'ın kombinasyonunu tutabilir. Aksiyonlar, Redux'ta uygulamanın state'ini değiştiren işlemlerdir. Değişen state'leri tutan reducer'lar, bu aksiyonlara göre state'i güncellerler.

Reduks store'u, createStore fonksiyonu kullanılarak oluşturulur. Bu fonksiyon, reducer ve middleware'leri parametre olarak alır. Store, Provider bileşeni kullanılarak bileşenlere aktarılır. Bu şekilde bileşenler, store'a erişebilirler ve state değiştirilebilir.

Aşağıdaki örnekte, öncelikle gerekli paketler import edilmiştir. Ardından, bir reducer oluşturulmuş ve bu reducer, store'a eklenmiştir. Son olarak, Provider bileşeni ile App bileşenine store aktarılmıştır.

import React from 'react';import ReactDOM from 'react-dom';import { Provider } from 'react-redux';import { createStore } from 'redux';const counterReducer = (state = 0, action) => {  switch (action.type) {    case 'INCREMENT':      return state + 1;    case 'DECREMENT':      return state - 1;    default:      return state;  }};const store = createStore(counterReducer);const App = () => {  return (          
);};ReactDOM.render(, document.getElementById('root'));

Bu şekilde, Redux kullanarak state management işlemleri tamamlanabilir ve uygulamanın yönetimi daha kolay hale gelir.


MobX Nedir ve Nasıl Kullanılır?

MobX, React uygulamalarında kullanılan bir state management aracıdır. Redux gibi global bir state yönetimi yapısına sahip olsa da, daha az karmaşıktır.

MobX, işlevsel programlama prensiplerine dayalıdır. Uygulamanın state'ini sadece birkaç satır kod ile yapılandırmak mümkündür. MobX ile, uygulamanın state'ini daha karmaşık yapmak yerine, state'in doğal yapısını kullanarak daha basit bir yapı oluşturulur.

MobX ile React bileşenleri, uygulama durumlarına dinamik olarak bağlanabilir. Bu durum, uygulama açısından daha esnek bir yapı oluşturur. MobX, ayrıca uygulamanın state'ini etkili bir şekilde yönetmenize yardımcı olan reaction (reaksiyon) ve computed (hesaplamalı) değerleri sağlar.

Bir React projesinde MobX kullanmaya başlamak için, öncelikle mobx ve mobx-react paketleri yüklenmelidir. Ardından, state yönetimi için observables kullanılmalıdır. Bu yöntem, uygulamanın state'ini dinamik olarak değiştirmek için özellikle kullanışlıdır. MobX ile, uygulamanın kodlaması çok daha basit hale gelir ve karmaşıklık azalır.


MobX Kullanımı

MobX, React projelerinde state yönetimi için kullanılan bir araçtır. MobX, Redux'tan daha az karmaşıktır ve daha hızlı yazılabilir. MobX kullanarak bir React projesinde state yönetimini ayarlamak oldukça kolaydır. Ancak, öncelikle mobx ve mobx-react paketleri projeye yüklenmelidir. Paketlerin yüklenmesinin ardından, state yönetimi için observables kullanılabilir.

Observables, React bileşenlerine bound edilebilen değişkenlerdir. MobX, observables yapısını kullanarak React projelerinde state yönetimi sağlar. Observables değiştiğinde, MobX otomatik olarak bileşenlerin state'ini günceller. Bu özellik, state yönetimini oldukça kolaylaştırır ve kod tekrarını önler.

MobX aynı zamanda, Redux'ta kullanılan eylem-tanımı-reducer yapısından farklı bir yaklaşım kullanır. MobX'ta,"store" denen bir yapı kullanılır ve bu yapı observables içerir. State değiştiren işlemler bu observables yapılarını güncelleyerek yapılır. Bu şekilde, Redux'tan farklı olarak MobX'ta tek bir yapı kullanılarak state yönetimi sağlanır.

Bir React projesinde, MobX kullanmak Redux kullanmaktan daha hızlı ve kolay olabilir. Projelerinizde MobX'i deneyerek, kendi ihtiyaçlarınıza uygun en iyi state yönetim aracını seçebilirsiniz.