সমাধান করা হয়েছে: প্রতিক্রিয়া রাউটার v6 অলস সাসপেন্স

রিঅ্যাক্ট রাউটার v6 অলস সাসপেন্স সম্পর্কিত প্রধান সমস্যা হল যে এটি এখনও সমস্ত ব্রাউজার দ্বারা সম্পূর্ণরূপে সমর্থিত নয়। এর অর্থ হল React Router v6 lazy suspense ব্যবহার করে ওয়েবসাইটগুলিতে নির্দিষ্ট পৃষ্ঠা বা বৈশিষ্ট্যগুলি অ্যাক্সেস করার চেষ্টা করার সময় ব্যবহারকারীরা সমস্যার সম্মুখীন হতে পারেন। উপরন্তু, এখনও কিছু বাগ এবং কর্মক্ষমতা সমস্যা আছে যেগুলি উৎপাদন পরিবেশে ব্যবহার করার আগে সমাধান করা প্রয়োজন। অবশেষে, সাসপেন্স সহ অলস লোডিং উপাদানগুলির জন্য API এখনও প্রাথমিক পর্যায়ে রয়েছে এবং বিদ্যমান অ্যাপ্লিকেশনগুলির সাথে সামঞ্জস্যতা নিশ্চিত করতে অতিরিক্ত বিকাশের সময় প্রয়োজন হতে পারে।

import React, { Suspense } from 'react';
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';

const Home = React.lazy(() => import('./Home'));
const About = React.lazy(() => import('./About'));
const Contact = React.lazy(() => import('./Contact'));
 
function AppRouter() { 

    return ( 

        <Router> 

            <Suspense fallback={<div>Loading...</div>}>

                <Switch> 

                    <Route exact path="/" component={Home} /> 

                    <Route path="/about" component={About} /> 

                    <Route path="/contact" component={Contact} />  

                </Switch>  

            </Suspense>  

        </Router>  

    );  
    
}  
export default AppRouter;

1. এই কোডটি প্রতিক্রিয়া লাইব্রেরি, সেইসাথে প্রতিক্রিয়া থেকে সাসপেন্স উপাদান এবং প্রতিক্রিয়া-রাউটার-ডোম থেকে ব্রাউজার রাউটার, রুট এবং সুইচ উপাদানগুলি আমদানি করে।
2. তারপরে এটি তাদের নিজ নিজ ফাইল থেকে আমদানি করতে প্রতিক্রিয়ার অলস লোডিং বৈশিষ্ট্য ব্যবহার করে তিনটি উপাদান (হোম, সম্পর্কে, যোগাযোগ) সংজ্ঞায়িত করে।
3. AppRouter ফাংশনটি সংজ্ঞায়িত করা হয় যা একটি রাউটার কম্পোনেন্ট রিটার্ন করে যার ভিতরে একটি সুইচ কম্পোনেন্ট সহ একটি সাসপেন্স কম্পোনেন্ট থাকে।
4. স্যুইচ কম্পোনেন্টের ভিতরে তিনটি রুট কম্পোনেন্ট আছে যেগুলো প্রতিটি ইম্পোর্ট করা কম্পোনেন্টের একটি রেন্ডার করে যখন তাদের নিজ নিজ পাথ ইউআরএলে মিলে যায় (যেমন, হোমের জন্য '/')।
5. অবশেষে, AppRouter রপ্তানি করা হয় যাতে এটি অ্যাপ্লিকেশনের অন্য কোথাও ব্যবহার করা যায়।

রিঅ্যাক্ট রাউটার v6 এ আপনি কিভাবে অলস লোডিং ব্যবহার করবেন

v6

অলস লোডিং হল একটি কৌশল যা কিছু নির্দিষ্ট উপাদানের লোডিং স্থগিত করার জন্য ব্যবহৃত হয় যতক্ষণ না তাদের প্রয়োজন হয়। প্রতিক্রিয়া রাউটার v6-এ, ডায়নামিক ইম্পোর্ট() সিনট্যাক্স ব্যবহার করে অলস লোডিং অর্জন করা যেতে পারে। এই সিনট্যাক্সটি আপনাকে আপনার কোডকে একাধিক বান্ডিলে বিভক্ত করতে দেয় যা চাহিদা অনুযায়ী বা সমান্তরালে লোড করা যেতে পারে। এটি প্রাথমিক বান্ডিলের আকার কমাতে এবং কর্মক্ষমতা উন্নত করতে সহায়তা করে। রিঅ্যাক্ট রাউটার v6 এর সাথে অলস লোডিং ব্যবহার করতে, আপনাকে অবশ্যই একটি ডায়নামিক ইম্পোর্ট() কলে অলস লোড করতে চান এমন কম্পোনেন্টটি মুড়ে দিতে হবে। import() কল একটি প্রতিশ্রুতি প্রদান করবে যা সমাধান হবে যখন উপাদানটি লোড করা হবে এবং রেন্ডার করার জন্য প্রস্তুত হবে।

সাসপেন্স এবং অলস প্রতিক্রিয়া কি

রিঅ্যাক্ট রাউটারে সাসপেন্স হল কিছু শর্ত পূরণ না হওয়া পর্যন্ত একটি রুট লোড হতে বিলম্ব করার একটি উপায়। এটি একটি অ্যাপ্লিকেশনের কর্মক্ষমতা উন্নত করতে ব্যবহার করা যেতে পারে যখন তাদের প্রয়োজন হয় শুধুমাত্র রুট লোড করে। উদাহরণস্বরূপ, যদি একজন ব্যবহারকারী এমন একটি পৃষ্ঠায় নেভিগেট করেন যার জন্য প্রমাণীকরণের প্রয়োজন হয়, তাহলে প্রমাণীকরণ সম্পূর্ণ না হওয়া পর্যন্ত রুটটি বিলম্বিত হতে পারে।

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

সম্পর্কিত পোস্ট:

মতামত দিন