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-এ পৌঁছাবে না।

react Article's
30 articles in total
React is a JavaScript library for building user interfaces, enabling developers to create reusable components and dynamic web applications.
Favicon
Redux Middleware সম্পর্কে বিস্তারিত আলোচনা
Favicon
POST ABOUT AI'S INCREASING INFLUENCE IN CODING
Favicon
[Boost]
Favicon
🌟 A New Adventure Begins! 🛵🍕
Favicon
From Heist Strategy to React State: How data flows between components
Favicon
Understanding React's useState with Callback Functions: A Deep Dive
Favicon
From Chaos to Clarity: Formatting React Code for a Clean and Readable Codebase
Favicon
Creating a react game on AWS
Favicon
Refactoring React: Taming Chaos, One Component at a Time
Favicon
The Magic of useCallback ✨
Favicon
Show a loading screen when changing pages in Next.js App router
Favicon
How to improve the Frontend part of the project using one button as an example :))))
Favicon
Open-Source TailwindCSS React Color Picker - Zero Dependencies! Perfect for Next.js Projects!
Favicon
Introducing EAS Hosting: Simplified deployment for modern React apps
Favicon
Understanding React's useEffect and Event Listeners: A Deep Dive
Favicon
Recreating the Interswitch Homepage with React and TailwindCSS.
Favicon
How to receive data in form from another component
Favicon
Unlocking the Secrets of React Context: Power, Pitfalls, and Performance
Favicon
"Starting My React Journey"
Favicon
Open-Source React Icon Picker: Lightweight, Customizable, and Built with ShadCN, TailwindCSS. Perfect for Next.js Projects!
Favicon
Dynamically Render Components Based on Configuration
Favicon
Conquer Breakpoints with React's useBreakpoints Hook
Favicon
Using React as Static Files in a Django Application: Step-by-Step Guide
Favicon
Don't copy/paste code you don't understand
Favicon
All-APIs.com: The Ultimate Free REST API Platform for Developers
Favicon
Form-based Dataverse Web Resources with React, Typescript and FluentUI - Part 2
Favicon
Level Up React : Deep Dive into React Elements
Favicon
Building Production-Grade Web Applications with Supabase – Part 1
Favicon
Transform Your Web Development Workflow with These JavaScript Giants
Favicon
Building High-Performance React Native Apps[Tips for Developers]

Featured ones: