Redux Toolkit Setup in React Native

Redux Toolkit Setup in React Native — সম্পূর্ণ বাংলা গাইড

React Native অ্যাপে যখন স্টেট বড় হতে থাকে, স্ক্রিনের সংখ্যা বাড়ে, API কল বেশি হয় — তখন স্টেট ম্যানেজমেন্ট খুব গুরুত্বপূর্ণ হয়ে ওঠে। Redux Toolkit হচ্ছে Redux এর আধুনিক ও সহজ সংস্করণ, যেখানে কম কোডে, কম জটিলতায়, বেশি পারফরম্যান্স পাওয়া যায়। এই গাইডে আপনি React Native এ Redux Toolkit সেটআপ থেকে শুরু করে Store, Slice, Action, Reducer সব কিছু Step-by-Step শিখবেন।

📌 1. Redux Toolkit কী?

Redux Toolkit হল Redux ব্যবহার করার একটি official, recommended ও সহজতম উপায়।

Redux Toolkit ব্যবহারের কারণঃ

  • কম কোডে Redux সেটআপ করা যায়
  • Immer.js এর মাধ্যমে state immutable handling অটোমেটিক হয়
  • Redux Thunk ইতিমধ্যেই বিল্ট-ইন
  • Slice আকারে মডুলার কোড লেখা যায়
  • Debugging অনেক সহজ

📌 2. React Native এ Redux Toolkit Install

npm install @reduxjs/toolkit react-redux
    

এতে দুটি জিনিস install হবে —

  • @reduxjs/toolkit — Redux Toolkit Functions
  • react-redux — Provider + Hooks

📌 3. Folder Structure

/src
   /redux
       store.js
       /slices
           counterSlice.js
    

📌 4. Slice তৈরি করা (Example: Counter Slice)

Slice হচ্ছে Redux state + reducer + action — সব এক সাথে।

// src/redux/slices/counterSlice.js

import { createSlice } from "@reduxjs/toolkit";

const counterSlice = createSlice({
  name: "counter",
  initialState: {
    value: 0,
  },
  reducers: {
    increment: (state) => {
      state.value += 1;   // Immer.js কারণে সরাসরি পরিবর্তন করা যায়
    },
    decrement: (state) => {
      state.value -= 1;
    },
    incrementByAmount: (state, action) => {
      state.value += action.payload;
    },
  },
});

export const { increment, decrement, incrementByAmount } = counterSlice.actions;
export default counterSlice.reducer;
    

📌 5. Store Setup

// src/redux/store.js

import { configureStore } from "@reduxjs/toolkit";
import counterReducer from "./slices/counterSlice";

export const store = configureStore({
  reducer: {
    counter: counterReducer,
  },
});
    

📌 6. App.js এ Provider দিয়ে Wrap করা

// App.js

import { Provider } from "react-redux";
import { store } from "./src/redux/store";
import Home from "./src/screens/Home";

export default function App() {
  return (
    
      
    
  );
}
    

📌 7. Screen এ Redux value ব্যবহার করা (useSelector)

import { useSelector } from "react-redux";

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

📌 8. Action Dispatch করা (useDispatch)

import { useDispatch } from "react-redux";
import { increment, decrement } from "../redux/slices/counterSlice";

const dispatch = useDispatch();

<Button title="Add" onPress={() => dispatch(increment())} />
<Button title="Minus" onPress={() => dispatch(decrement())} />
    

📌 9. Async Thunk (API Call এর জন্য)

import { createAsyncThunk, createSlice } from "@reduxjs/toolkit";

export const fetchUsers = createAsyncThunk(
  "users/fetch",
  async () => {
    const res = await fetch("https://jsonplaceholder.typicode.com/users");
    return res.json();
  }
);

const userSlice = createSlice({
  name: "users",
  initialState: { data: [], loading: false },
  extraReducers: (builder) => {
    builder
      .addCase(fetchUsers.pending, (state) => { state.loading = true; })
      .addCase(fetchUsers.fulfilled, (state, action) => {
        state.loading = false;
        state.data = action.payload;
      });
  },
});
    

📌 10. Redux Toolkit ব্যবহারের সুবিধা

  • Setup খুব সহজ
  • Reducers লেখার ঝামেলা কম
  • Actions অটোমেটিক জেনারেট হয়
  • API Call এর জন্য Async Thunk built-in
  • Immer.js এর কারণে স্টেট ইমিউটেবল ম্যানেজ হয়

✔ সারসংক্ষেপ

এই টিউটোরিয়ালে আপনি শিখলেন —

  • Redux Toolkit Install
  • Slice তৈরি
  • Store Setup
  • Provider ব্যবহার
  • useSelector + useDispatch
  • Async Thunk দিয়ে API Call

এখন আপনি Redux Toolkit ব্যবহার করে React Native অ্যাপে স্টেট খুব সহজে ম্যানেজ করতে পারবেন।

👼 Quiz
/

লোড হচ্ছে...