Logo

dev-resources.site

for different kinds of informations.

Redux Middleware সম্পর্কে বিস্তারিত আলোচনা

Published at
1/15/2025
Categories
webdev
rsmacademybd
redux
react
Author
rsmacademybd
Categories
4 categories in total
webdev
open
rsmacademybd
open
redux
open
react
open
Author
12 person written this
rsmacademybd
open
Redux Middleware সম্পর্কে বিস্তারিত আলোচনা

Redux Middleware কী?

Redux Middleware হলো একটি ফাংশন বা লেয়ার যা Redux-এর dispatch এবং reducer-এর মধ্যে কাজ করে। এটি অ্যাকশনগুলোকে প্রক্রিয়াজাত করার আগে বা পরে নির্দিষ্ট কাজ করতে দেয়।

Middleware-এর মূল উদ্দেশ্য:

  1. অ্যাসিঙ্ক্রোনাস ডেটা হ্যান্ডল করা (যেমন API কল)।
  2. অ্যাকশনগুলোর উপর লগিং বা অন্যান্য প্রক্রিয়া সম্পন্ন করা।
  3. Redux Store-এ সরাসরি পরিবর্তন আনার আগে প্রয়োজনীয় চেক বা ফিল্টারিং করা।

Middleware-এর কাজ করার ধরণ

Middleware তিনটি প্রধান স্টেপে কাজ করে:

  1. Redux Store থেকে getState ফাংশনের মাধ্যমে বর্তমান স্টেট পাওয়া।
  2. dispatch ফাংশনের মাধ্যমে অ্যাকশন পাস করা।
  3. এগিয়ে যাওয়ার জন্য next() ফাংশন কল করা।

Middleware ব্যবহার করার সুবিধা

  1. অ্যাসিঙ্ক্রোনাস অ্যাকশন হ্যান্ডলিং: API থেকে ডেটা ফেচ বা অন্য কোনো অ্যাসিঙ্ক্রোনাস কাজ সহজে করা যায়।
  2. লগিং: Redux অ্যাকশন ও স্টেট পরিবর্তনের লগ রাখা।
  3. কাস্টম প্রসেসিং: অ্যাকশন প্রসেস করার আগে বা পরে অতিরিক্ত কাজ যোগ করা।
  4. ডিবাগিং: Redux স্টেটে সমস্যা হলে ডিবাগিং সহজ হয়।

Middleware তৈরির ফর্ম্যাট

Middleware একটি ফাংশন যা এই ফর্ম্যাটে লেখা হয়:

const exampleMiddleware = store => next => action => {
  console.log("Middleware Triggered:", action);
  next(action); // অ্যাকশনটি পরবর্তী middleware বা reducer-এ পাঠানো
};
Enter fullscreen mode Exit fullscreen mode

Redux-এ Middleware যোগ করা

Middleware যোগ করার জন্য applyMiddleware ফাংশন ব্যবহার করা হয়।

উদাহরণ:

import { createStore, applyMiddleware } from 'redux';

// একটি সাধারণ middleware
const logger = store => next => action => {
  console.log('Dispatching:', action);
  let result = next(action); // অ্যাকশনটি রিডিউসারের কাছে পাঠানো
  console.log('Next State:', store.getState());
  return result;
};

// Reducer
const reducer = (state = {}, action) => {
  switch (action.type) {
    case 'INCREMENT':
      return { count: (state.count || 0) + 1 };
    default:
      return state;
  }
};

// Store তৈরি এবং middleware যোগ করা
const store = createStore(reducer, applyMiddleware(logger));

// অ্যাকশন পাঠানো
store.dispatch({ type: 'INCREMENT' });
Enter fullscreen mode Exit fullscreen mode

Redux Middleware-এর জনপ্রিয় উদাহরণ

  1. Redux Thunk
    • অ্যাসিঙ্ক্রোনাস অ্যাকশন হ্যান্ডল করতে ব্যবহৃত হয়।
    • ফাংশনকে অ্যাকশন হিসেবে ডিসপ্যাচ করার অনুমতি দেয়। ইনস্টলেশন:
   npm install redux-thunk
Enter fullscreen mode Exit fullscreen mode

ব্যবহার:

   import thunk from 'redux-thunk';

   const fetchData = () => {
     return async dispatch => {
       const response = await fetch('https://api.example.com/data');
       const data = await response.json();
       dispatch({ type: 'FETCH_SUCCESS', payload: data });
     };
   };

   const store = createStore(reducer, applyMiddleware(thunk));
   store.dispatch(fetchData());
Enter fullscreen mode Exit fullscreen mode
  1. Redux Saga
    • Redux অ্যাকশনগুলোর কার্যক্রম আরও সুন্দরভাবে পরিচালনা করতে ব্যবহৃত হয়।
    • JavaScript Generator ব্যবহার করে অ্যাসিঙ্ক্রোনাস কার্যক্রম সম্পন্ন করে।

Middleware ব্যবহারের গুরুত্বপূর্ণ বিষয়

  • Middleware-এর ক্রম (order) গুরুত্বপূর্ণ। প্রথমে যে middleware যোগ করা হয় সেটি প্রথমে কাজ করবে।
  • next(action) কল না করলে অ্যাকশনটি স্টপ হয়ে যাবে এবং পরবর্তী middleware বা reducer-এ পৌঁছাবে না।

redux Article's
30 articles in total
Favicon
Redux Middleware সম্পর্কে বিস্তারিত আলোচনা
Favicon
Comprehensive Redux Toolkit Notes for React Developers
Favicon
🚀 Learning Through Experience: A Tale of NgRx Effects
Favicon
Why Use Redux in React? Complete Guide in Bangla
Favicon
State Management in React 2025: Exploring Modern Solutions
Favicon
[Boost]
Favicon
TypeScript + React Redux: Pro Tips for Type-Safe and Scalable Apps
Favicon
State Management in React: Redux vs. Context API vs. Recoil
Favicon
Redux com React
Favicon
Manual Setup (Custom Webpack/Babel configuration) with react (i am not able running it )
Favicon
TanStack query or RTK query.
Favicon
🚀 React Best Practices for Scalable Frontends: Part 2 – State Management
Favicon
Redux Toolkit - createAsyncThunk()
Favicon
Bootcamping 02: Named exports and default exports - does it really matter?
Favicon
State Management with Redux Toolkit: A Complete Guide
Favicon
Boost Your Application's Performance with Redux RTK Query 🚀
Favicon
Mastering State Machines with XState in React
Favicon
Mastering Redux Basics: A Complete Guide to State Management in React
Favicon
Mastering Redux Toolkit: Simplify State Management in Your React App
Favicon
Redux Made Simple: Managing State Like a Pro
Favicon
I have working on product customization
Favicon
Context, Redux or Composition?
Favicon
Learn Redux Toolkit - React (TypeScript)
Favicon
Por que eu não uso bibliotecas de gerenciamento de estado no React
Favicon
The Role of State Management in React: A Guide to Redux, Context API, and More
Favicon
Creating Theme Systems in React with SCSS and Redux
Favicon
Managing Data with Redux: Storing Content and IDs in Slices
Favicon
🚀 Creating a Feature-Rich Redux Store with Redux Toolkit and TypeScript
Favicon
Redux vs Zustand: A Comprehensive Comparison
Favicon
Advanced Redux

Featured ones: