Redux Store, Actions, এবং Reducers এর ভূমিকা

Redux এবং State Management - রিয়্যাক্ট জেএস (ReactJS) - Web Development

302

React অ্যাপ্লিকেশনগুলির মধ্যে স্টেট ম্যানেজমেন্ট গুরুত্বপূর্ণ ভূমিকা পালন করে, বিশেষ করে যখন অ্যাপ্লিকেশনটি বড় এবং কমপ্লেক্স হয়। Redux হল একটি স্টেট ম্যানেজমেন্ট লাইব্রেরি যা React অ্যাপ্লিকেশনগুলিতে গ্লোবাল স্টেট ম্যানেজমেন্টকে সহজ করে তোলে। Redux-এর মূল অংশগুলো হল: Store, Actions, এবং Reducers। এই অংশগুলো একসঙ্গে কাজ করে অ্যাপ্লিকেশনের স্টেটকে পরিচালনা এবং পরিবর্তন করতে।


Redux Store

Redux Store হল অ্যাপ্লিকেশনটির গ্লোবাল স্টোর যেখানে পুরো অ্যাপ্লিকেশনের স্টেট (ডাটা) সংরক্ষিত থাকে। এটি এক ধরনের "সেন্ট্রাল ডাটাবেস" যা অ্যাপ্লিকেশনটির সমস্ত স্টেট ধারণ করে এবং অ্যাপ্লিকেশনের যেকোনো জায়গা থেকে অ্যাক্সেস করা যায়।

Store-এর বৈশিষ্ট্য:

  • গ্লোবাল স্টেট: স্টোর পুরো অ্যাপ্লিকেশনের স্টেট ধারণ করে এবং একক স্থানে স্টেট সংরক্ষণ করা হয়।
  • Read-Only: স্টোরের স্টেট সরাসরি পরিবর্তন করা যায় না। স্টেট পরিবর্তন করতে Actions ব্যবহার করা হয়।
  • Centralized: স্টোর একটি সেন্ট্রাল স্থান যেখানে সমস্ত ডেটা রাখা হয়, এবং এটি অ্যাপ্লিকেশনের যেকোনো অংশ থেকে অ্যাক্সেস করা যায়।

উদাহরণ:

import { createStore } from 'redux';

// Initial state
const initialState = {
  count: 0
};

// Reducer function
const counterReducer = (state = initialState, action) => {
  switch(action.type) {
    case 'INCREMENT':
      return { count: state.count + 1 };
    case 'DECREMENT':
      return { count: state.count - 1 };
    default:
      return state;
  }
};

// Create Redux store
const store = createStore(counterReducer);

// Get current state
console.log(store.getState());  // { count: 0 }

Redux Actions

Actions হল একটি প্লেন JavaScript অবজেক্ট যা স্টেট পরিবর্তন করার জন্য ডিসপ্যাচ করা হয়। প্রতিটি অ্যাকশনের একটি type থাকে, যা স্টেট পরিবর্তনের নির্দেশ দেয়, এবং প্রয়োজনে payload হিসেবে অতিরিক্ত ডেটা থাকতে পারে।

Actions-এর বৈশিষ্ট্য:

  • Type: প্রতিটি অ্যাকশন একটি type প্রপার্টি ধারণ করে যা অ্যাকশনের উদ্দেশ্য নির্দেশ করে (যেমন INCREMENT, DECREMENT)।
  • Payload (Optional): অ্যাকশনটি স্টেট পরিবর্তন করতে যে ডেটা প্রয়োজন তা payload হিসেবে অন্তর্ভুক্ত করা হয়।

উদাহরণ:

// Action to increment count
const incrementAction = {
  type: 'INCREMENT'
};

// Action to decrement count
const decrementAction = {
  type: 'DECREMENT'
};

অথবা, আপনি action creators তৈরি করতে পারেন যা অ্যাকশনকে আরও ডাইনামিক এবং পুনঃব্যবহারযোগ্য করে তোলে:

const increment = () => ({
  type: 'INCREMENT'
});

const decrement = () => ({
  type: 'DECREMENT'
});

Redux Reducers

Reducers হল পিউর ফাংশন যা স্টেট এবং অ্যাকশন গ্রহণ করে এবং একটি নতুন স্টেট ফেরত দেয়। Reducer-এ, অ্যাকশন টাইপের উপর ভিত্তি করে স্টেট পরিবর্তন করা হয়। এটি একটি নির্দিষ্ট অংশের জন্য স্টেট পরিবর্তন করে এবং এটি অবশ্যই পিউর ফাংশন হতে হবে, অর্থাৎ এটি বাহ্যিক কোন ভেরিয়েবল বা ডেটা মিউটেট (পরিবর্তন) করতে পারবে না।

Reducer-এর বৈশিষ্ট্য:

  • Pure Function: Reducer ফাংশনটি নির্দিষ্ট অ্যাকশন টাইপের ভিত্তিতে স্টেট পরিবর্তন করে এবং কোনো বাহ্যিক প্রভাব ফেলে না।
  • State Modification: Reducer স্টেট পরিবর্তন করে এবং আগের স্টেটের উপর নির্ভর করে নতুন স্টেট ফিরিয়ে দেয়।
  • No Side Effects: Reducer ফাংশনে কোনো সাইড ইফেক্ট (যেমন API কল) হতে পারে না। শুধু স্টেট পরিবর্তন করা হয়।

উদাহরণ:

const initialState = {
  count: 0
};

// Reducer function
const counterReducer = (state = initialState, action) => {
  switch(action.type) {
    case 'INCREMENT':
      return { count: state.count + 1 };
    case 'DECREMENT':
      return { count: state.count - 1 };
    default:
      return state;
  }
};

Store, Actions, এবং Reducers এর ভূমিকা

  1. Store: Redux অ্যাপ্লিকেশনটির একমাত্র সেন্ট্রাল জায়গা যেখানে সমস্ত স্টেট রাখা হয়। আপনি যেকোনো অংশ থেকে এই স্টোর অ্যাক্সেস করতে পারেন এবং এর ভ্যালু পড়তে পারেন।
  2. Actions: অ্যাকশন হল স্টেট পরিবর্তনের ট্রিগার। অ্যাকশন ডিসপ্যাচ করে আপনি জানিয়ে দেন যে স্টেটে কি পরিবর্তন ঘটবে। অ্যাকশন মূলত Redux-কে জানায় যে কি ধরনের পরিবর্তন ঘটানো দরকার।
  3. Reducers: Reducer ফাংশন হল অ্যাকশনের ভিত্তিতে স্টেট পরিবর্তনের বাস্তবায়ন। এটি কেবল স্টেটকে পরিবর্তন করে এবং কখনও বাহ্যিক কোন পরিবর্তন ঘটায় না।

Redux Flow (স্টেট পরিবর্তন)

Redux-এর মাধ্যমে স্টেট পরিবর্তনের প্রক্রিয়া সাধারণত নিচের মতো হয়:

  1. Action Dispatch: ইউজার কোনো অ্যাকশন triggers করে (যেমন বাটনে ক্লিক করা)।
  2. Reducer: Reducer অ্যাকশন গ্রহণ করে এবং স্টেট পরিবর্তন করে।
  3. Store Update: Redux store নতুন স্টেট গ্রহণ করে এবং কম্পোনেন্টগুলিকে এটি পুনঃরেন্ডার করতে বলে।

Redux-এর সুবিধা

  • Centralized State Management: Redux স্টেটকে সেন্ট্রালাইজ করে, যা বড় অ্যাপ্লিকেশনের জন্য খুবই কার্যকরী।
  • Predictable State Changes: Reducers স্টেট পরিবর্তনকে পূর্বনির্ধারিত এবং predictable রাখে।
  • Easier Debugging: Redux DevTools ব্যবহার করে স্টেট পরিবর্তন এবং অ্যাকশন ট্র্যাক করা সহজ হয়।
  • Improved Maintainability: Redux স্টোর, অ্যাকশন এবং রিডুসার ব্যবস্থাপনা কোডকে পরিষ্কার এবং মেইন্টেনেবল রাখে।

উপসংহার

Redux ব্যবহার করলে React অ্যাপ্লিকেশনগুলির স্টেট ম্যানেজমেন্ট আরো সংগঠিত এবং স্কেলেবল হয়। Store, Actions, এবং Reducers এর মধ্যে সম্পর্ক বুঝে আপনি Redux-এর শক্তি পুরোপুরি কাজে লাগাতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...