অ্যাপ্লিকেশনের পারফরম্যান্স, ব্যবহারকারীর অভিজ্ঞতা এবং প্রাথমিক লোডের সময় উন্নত করতে কম্পোনেন্ট কোড স্প্লিটিংয়ের সাথে রিঅ্যাক্ট লেজি লোডিং কীভাবে প্রয়োগ করতে হয় তা শিখুন।
রিঅ্যাক্ট লেজি লোডিং: কম্পোনেন্ট কোড স্প্লিটিং দিয়ে পারফরম্যান্স বৃদ্ধি
আজকের ওয়েব ডেভেলপমেন্টের জগতে পারফরম্যান্স সবচেয়ে গুরুত্বপূর্ণ। ব্যবহারকারীরা দ্রুত লোডিং টাইম এবং মসৃণ ইন্টারঅ্যাকশন আশা করে। বড় জাভাস্ক্রিপ্ট বান্ডেল, বিশেষ করে জটিল রিঅ্যাক্ট অ্যাপ্লিকেশনগুলিতে, প্রাথমিক লোডের সময় এবং সামগ্রিক ব্যবহারকারীর অভিজ্ঞতাকে উল্লেখযোগ্যভাবে প্রভাবিত করতে পারে। এই সমস্যা সমাধানের একটি শক্তিশালী কৌশল হলো লেজি লোডিং, বিশেষ করে কম্পোনেন্ট কোড স্প্লিটিং। এই নিবন্ধটি React.lazy
এবং Suspense
ব্যবহার করে রিঅ্যাক্ট লেজি লোডিং বোঝা এবং প্রয়োগ করার জন্য একটি বিস্তারিত নির্দেশিকা প্রদান করে।
লেজি লোডিং এবং কোড স্প্লিটিং কী?
লেজি লোডিং, যা অন-ডিমান্ড লোডিং নামেও পরিচিত, এটি এমন একটি কৌশল যা রিসোর্স (আমাদের ক্ষেত্রে, রিঅ্যাক্ট কম্পোনেন্ট) লোড করাকে বিলম্বিত করে যতক্ষণ না সেটির সত্যিই প্রয়োজন হয়। অ্যাপ্লিকেশনের সমস্ত কোড একবারে লোড করার পরিবর্তে, শুধুমাত্র অপরিহার্য অংশগুলি প্রাথমিকভাবে লোড করা হয় এবং বাকি কোড অ্যাসিঙ্ক্রোনাসভাবে লোড করা হয় যখন ব্যবহারকারী একটি নির্দিষ্ট রুটে নেভিগেট করে বা একটি নির্দিষ্ট কম্পোনেন্টের সাথে ইন্টারঅ্যাক্ট করে। এটি প্রাথমিক বান্ডেলের আকার উল্লেখযোগ্যভাবে হ্রাস করে এবং টাইম টু ইন্টারঅ্যাক্টিভ (TTI) উন্নত করে।
কোড স্প্লিটিং হলো আপনার অ্যাপ্লিকেশনের কোডকে ছোট, পরিচালনাযোগ্য খণ্ডে (বান্ডেল) বিভক্ত করার প্রক্রিয়া। এই বান্ডেলগুলি তখন স্বাধীনভাবে এবং প্রয়োজন অনুযায়ী লোড করা যায়। রিঅ্যাক্ট লেজি লোডিং কম্পোনেন্টগুলি শুধুমাত্র যখন প্রয়োজন হয় তখন লোড করার জন্য কোড স্প্লিটিং ব্যবহার করে।
লেজি লোডিং এবং কোড স্প্লিটিংয়ের সুবিধা
- উন্নত প্রাথমিক লোড টাইম: প্রাথমিক বান্ডেলের আকার হ্রাস করে, ব্রাউজার কম জাভাস্ক্রিপ্ট ডাউনলোড এবং পার্স করে, যার ফলে পেজ দ্রুত লোড হয়। এটি বিশেষ করে ধীরগতির নেটওয়ার্ক সংযোগ বা ডিভাইসে থাকা ব্যবহারকারীদের জন্য গুরুত্বপূর্ণ।
- উন্নত ব্যবহারকারীর অভিজ্ঞতা: দ্রুত লোডিং টাইম আরও প্রতিক্রিয়াশীল এবং আনন্দদায়ক ব্যবহারকারীর অভিজ্ঞতা প্রদান করে, যা বাউন্স রেট কমায় এবং ব্যবহারকারীর সংযুক্তি বাড়ায়।
- রিসোর্স খরচ হ্রাস: শুধুমাত্র প্রয়োজনীয় কোড লোড করা অ্যাপ্লিকেশনের মেমরি ফুটপ্রিন্ট হ্রাস করে, যা বিশেষ করে মোবাইল ডিভাইসের জন্য উপকারী।
- উন্নত SEO: সার্চ ইঞ্জিনগুলি দ্রুত লোডিং টাইমযুক্ত ওয়েবসাইট পছন্দ করে, যা আপনার ওয়েবসাইটের সার্চ ইঞ্জিন র্যাঙ্কিং উন্নত করতে পারে।
React.lazy
এবং Suspense
দিয়ে রিঅ্যাক্ট লেজি লোডিং বাস্তবায়ন
রিঅ্যাক্ট React.lazy
এবং Suspense
ব্যবহার করে কম্পোনেন্ট লেজি লোড করার জন্য একটি বিল্ট-ইন ব্যবস্থা প্রদান করে। React.lazy
আপনাকে ডায়নামিকভাবে একটি কম্পোনেন্ট ইম্পোর্ট করতে দেয়, যেখানে Suspense
কম্পোনেন্টটি লোড হওয়ার সময় একটি ফলব্যাক UI প্রদর্শনের উপায় প্রদান করে।
ধাপ ১: React.lazy
দিয়ে ডায়নামিক ইম্পোর্ট
React.lazy
একটি ফাংশন গ্রহণ করে যা import()
কল করে। import()
ফাংশনটি একটি ডায়নামিক ইম্পোর্ট যা একটি Promise রিটার্ন করে, এবং এটি সেই মডিউলে রিজলভ হয় যা আপনি লেজি লোড করতে চান।
import React, { lazy, Suspense } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
এই উদাহরণে, MyComponent
রেন্ডার না হওয়া পর্যন্ত লোড হয় না। import('./MyComponent')
স্টেটমেন্টটি ডায়নামিকভাবে ./MyComponent
ফাইল থেকে কম্পোনেন্টটি ইম্পোর্ট করে। মনে রাখবেন যে পাথটি বর্তমান ফাইলের সাপেক্ষে।
ধাপ ২: লোডিং স্টেট পরিচালনা করতে Suspense
ব্যবহার করা
যেহেতু লেজি লোডিংয়ে কম্পোনেন্টগুলির অ্যাসিঙ্ক্রোনাস লোডিং জড়িত, তাই লোডিং স্টেট পরিচালনা করার এবং কম্পোনেন্টটি ফেচ করার সময় একটি ফলব্যাক UI প্রদর্শনের জন্য আপনার একটি উপায় প্রয়োজন। এখানেই Suspense
কাজে আসে। Suspense
হল একটি রিঅ্যাক্ট কম্পোনেন্ট যা আপনাকে এর চিলড্রেনদের রেন্ডারিং "সাসপেন্ড" বা স্থগিত করতে দেয় যতক্ষণ না তারা প্রস্তুত হয়। এটি একটি fallback
প্রপ নেয়, যা চিলড্রেন লোড হওয়ার সময় রেন্ডার করার জন্য UI নির্দিষ্ট করে।
import React, { lazy, Suspense } from 'react';
const MyComponent = lazy(() => import('./MyComponent'));
function App() {
return (
Loading...
এই উদাহরণে, Suspense
কম্পোনেন্টটি MyComponent
কে র্যাপ করে। যখন MyComponent
লোড হচ্ছে, তখন fallback
প্রপ (
) রেন্ডার হবে। একবার MyComponent
লোড হয়ে গেলে, এটি ফলব্যাক UI প্রতিস্থাপন করবে।
উদাহরণ: একটি রিঅ্যাক্ট রাউটার অ্যাপ্লিকেশনে রুট লেজি লোড করা
রিঅ্যাক্ট রাউটার অ্যাপ্লিকেশনের রুটের জন্য লেজি লোডিং বিশেষভাবে কার্যকর। আপনি আপনার অ্যাপ্লিকেশনের পুরো পৃষ্ঠা বা বিভাগগুলি লেজি লোড করতে পারেন, যা আপনার ওয়েবসাইটের প্রাথমিক লোডের সময় উন্নত করে।
import React, { lazy, Suspense } from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';
const Home = lazy(() => import('./pages/Home'));
const About = lazy(() => import('./pages/About'));
const Contact = lazy(() => import('./pages/Contact'));
function App() {
return (
Loading...