Web Development Persist Gate এবং Rehydration Process গাইড ও নোট

179

Persist Gate এবং Rehydration Process হল Redux-এর উন্নত কনসেপ্ট যা অ্যাপ্লিকেশনের স্টেটকে সঞ্চয় বা সংরক্ষণ (persist) এবং পুনরুদ্ধার (rehydrate) করতে ব্যবহৃত হয়। যখন অ্যাপ্লিকেশন পুনরায় লোড হয়, তখন আগের স্টেট পুনরুদ্ধার করতে এবং আগের অবস্থায় ফিরে যেতে এই প্রক্রিয়া সহায়তা করে। এটি বিশেষত ইউজারের প্রিফারেন্স, লগইন তথ্য, বা অন্যান্য গুরুত্বপূর্ণ ডেটা স্টোর করে রাখতে কাজে আসে।


Persist Gate কী?

Persist Gate হল একটি কনসেপ্ট যা Redux-এ স্টেটের পাস persist করার জন্য ব্যবহৃত হয়, অর্থাৎ অ্যাপ্লিকেশনটি পুনরায় লোড বা রিফ্রেশ হওয়ার পরেও স্টেট আগের মতোই থাকবে। Redux Persist একটি পপুলার লাইব্রেরি যা এই কনসেপ্টটি বাস্তবায়ন করতে সহায়তা করে। Persist Gate হল সেই স্থান যেখানে এটি নিশ্চিত করা হয় যে, অ্যাপ্লিকেশনটি যখন পুনরায় রেন্ডার হবে, তখন স্টেট পুনরুদ্ধার হয়ে যাবে এবং ইউজার আগের অবস্থায় ফিরে যাবে।

Persist Gate মূলত একটি React কম্পোনেন্ট যা Redux Persist এর সঙ্গে কাজ করে, এবং এটি নিশ্চিত করে যে পুনরুদ্ধারের প্রক্রিয়া সফলভাবে সম্পন্ন হয়েছে।

Persist Gate কিভাবে কাজ করে?

  1. Persist Gate অ্যাপ্লিকেশনের রেন্ডারিং শুরু হওয়ার আগে স্টোরের স্টেট পুনরুদ্ধার করে।
  2. এটি rehydrate প্রক্রিয়া চলাকালীন সময়ে loading অবস্থায় থাকে, অর্থাৎ, স্টোরের ডেটা পুনরুদ্ধার না হওয়া পর্যন্ত অ্যাপ্লিকেশনকে সম্পূর্ণরূপে রেন্ডার করতে দেয় না।
  3. একবার পুনরুদ্ধার সম্পন্ন হলে, অ্যাপ্লিকেশন রেন্ডার হয় এবং ইউজারের আগের স্টেট অনুযায়ী অ্যাপ্লিকেশন স্লাইডিং শুরু হয়।

Redux Persist এর মধ্যে PersistGate এক্সপোর্ট করা হয়, যেটি Redux Store এবং React অ্যাপ্লিকেশনকে একটি সিঙ্ক্রোনাইজড পরিবেশে সংযুক্ত করে।


Persist Gate এর উদাহরণ:

import React from 'react';
import { PersistGate } from 'redux-persist/integration/react';
import { Provider } from 'react-redux';
import { store, persistor } from './store';
import App from './App';

function Root() {
  return (
    <Provider store={store}>
      <PersistGate loading={<div>Loading...</div>} persistor={persistor}>
        <App />
      </PersistGate>
    </Provider>
  );
}

export default Root;

এখানে:

  • PersistGate একটি loading প্রপস নেয়, যা স্টেট পুনরুদ্ধারের সময় ইউজারের জন্য একটি লোডিং কম্পোনেন্ট প্রদর্শন করে। এটি পাস করা হয় Redux Persist দ্বারা যতক্ষণ না স্টেট পুরোপুরি পুনরুদ্ধার হয়।
  • persistor হল একটি অবজেক্ট যা Redux Persist সেশনকে ম্যানেজ করে।

Rehydration Process কী?

Rehydration হল সেই প্রক্রিয়া যার মাধ্যমে Redux স্টোরে সংরক্ষিত স্টেট পুনরুদ্ধার করা হয়। যখন একটি অ্যাপ্লিকেশন পুনরায় লোড হয়, তখন স্টেট সাধারণত ব্রাউজারের লোকাল স্টোরেজ বা সেশন স্টোরেজ থেকে পুনরুদ্ধার করা হয়। এই প্রক্রিয়াটি rehydration নামে পরিচিত, এবং এটি নিশ্চিত করে যে ইউজারের ডেটা বা অন্যান্য কনফিগারেশন স্টেট রিফ্রেশ বা পেজ রিলোডের পরও অটোমেটিকভাবে পুনরুদ্ধার হয়ে যাবে।

Rehydration কিভাবে কাজ করে?

  1. Persistor-এর মাধ্যমে স্টেটকে লোকাল স্টোরেজে সংরক্ষণ করা হয়।
  2. যখন অ্যাপ্লিকেশন লোড হয়, Redux Persist স্বয়ংক্রিয়ভাবে সেই স্টেট পুনরুদ্ধার করতে চেষ্টা করে এবং সেটি Redux স্টোরে লোড করে দেয়।
  3. একবার পুনরুদ্ধার প্রক্রিয়া সম্পন্ন হলে, ইউজার আগের স্টেটে ফিরে যেতে পারেন এবং অ্যাপ্লিকেশনটি তার গত অবস্থায় কাজ করতে থাকবে।

Rehydration Process এর উদাহরণ:

import { createStore } from 'redux';
import { persistStore, persistReducer } from 'redux-persist';
import storage from 'redux-persist/lib/storage'; // স্থানীয় স্টোরেজ ব্যবহার করতে

const persistConfig = {
  key: 'root', // কী দিয়ে স্টেট সেভ হবে
  storage, // লোকাল স্টোরেজ বা সেশন স্টোরেজ
};

const rootReducer = (state = { todos: [] }, action) => {
  switch (action.type) {
    case 'ADD_TODO':
      return { ...state, todos: [...state.todos, action.payload] };
    default:
      return state;
  }
};

const persistedReducer = persistReducer(persistConfig, rootReducer);

const store = createStore(persistedReducer);
const persistor = persistStore(store);

এখানে:

  • persistConfig: এটি একটি কনফিগারেশন অবজেক্ট, যেখানে স্টোরেজ পদ্ধতি (লোকাল স্টোরেজ বা সেশন স্টোরেজ) এবং স্টোরের key নির্ধারণ করা হয়।
  • persistedReducer: এটি মূল রিডিউসার যা persistReducer দ্বারা প্যাক করা হয় যাতে স্টেটকে সেভ এবং পুনরুদ্ধার করা যায়।
  • persistStore(store): এটি স্টোরের জন্য একটি persistor অবজেক্ট তৈরি করে, যা স্টেটকে পুনরুদ্ধার করে।

Persist Gate এবং Rehydration Process এর সুবিধা

  1. স্টেট সঞ্চয় (Persistence): অ্যাপ্লিকেশন বন্ধ বা রিফ্রেশ হওয়ার পরেও ইউজারের ডেটা ও প্রেফারেন্সগুলো সেভ থাকে।
  2. ইউজার এক্সপেরিয়েন্স: ইউজার যখন অ্যাপ্লিকেশন ফের লোড করেন, তখন তারা আগের অবস্থায় ফিরে যেতে পারে, যা একটি ধারাবাহিক অভিজ্ঞতা প্রদান করে।
  3. অ্যাসিনক্রোনাস ডেটা লোডিং: পুনরুদ্ধারের সময় অ্যাপ্লিকেশন বা UI লোড হতে থাকে, যাতে ইউজারের জন্য একটি স্লো রিডিং অভিজ্ঞতা না হয়।
  4. অফলাইন সাপোর্ট: ইউজার যখন অফলাইনে থাকে, তখন তাদের ডেটা লোকাল স্টোরেজে সেভ হয়ে থাকে এবং তারা পরবর্তী সময়ে ইন্টারনেট কানেকশন পুনরুদ্ধার করলে তা পুনরুদ্ধার করতে সক্ষম হয়।

সারাংশ

Persist Gate এবং Rehydration Process Redux-এ স্টেটের ধারাবাহিকতা এবং সঞ্চয় (persistence) নিশ্চিত করে। Persist Gate স্টেট পুনরুদ্ধারের জন্য একটি গেট হিসেবে কাজ করে এবং পুনরুদ্ধারের সময় লোডিং স্ক্রিন দেখাতে পারে, যখন Rehydration Process সেই পুনরুদ্ধারের মূল প্রক্রিয়া, যা আগের স্টেট পুনরুদ্ধার করে। Redux Persist লাইব্রেরি এই প্রক্রিয়া সহজ করে তোলে, এবং এটি বিশেষত অ্যাসিনক্রোনাস ডেটা বা ইউজার প্রিফারেন্স স্টোর করার ক্ষেত্রে কার্যকর।

Content added By
Promotion

Are you sure to start over?

Loading...