Nested Routes এবং Views

নেভিগেশন এবং রাউটিং - ভাডিন (Vaadin) - Web Development

284

Vaadin এ Nested Routes এবং Views ব্যবহার করে আপনি অ্যাপ্লিকেশনের বিভিন্ন অংশকে সন্নিবেশিত (nested) করে উন্নত এবং সংগঠিত ইউজার ইন্টারফেস (UI) তৈরি করতে পারেন। এই পদ্ধতিটি অ্যাপ্লিকেশনের নেভিগেশন এবং ভিউ ম্যানেজমেন্টকে আরও কার্যকর এবং স্কেলেবল করে তোলে।

Nested Routes কী?


Nested Routes হল একটি পদ্ধতি যেখানে একটি রুটের অধীনে আরও এক বা একাধিক সাব-রুট (sub-routes) সংযুক্ত করা হয়। এটি একটি parent-child রিলেশন তৈরি করে, যেখানে প্রধান রুটটি একটি ভিউ ধারণ করে এবং তার মধ্যে অন্য ভিউস বা রাউটগুলিকে অন্তর্ভুক্ত করা হয়।

এটি আপনাকে অ্যাপ্লিকেশনের বিভিন্ন অংশের মধ্যে সহজে নেভিগেশন করতে এবং অ্যাপ্লিকেশনটির কাঠামোকে পরিষ্কারভাবে সংগঠিত করতে সাহায্য করে। যখন আপনি একটি parent রুটে পরিবর্তন করেন, তখন তার অন্তর্ভুক্ত সাব-রুটগুলির মধ্যে পরিবর্তন আনা যায়।

Nested Routes কিভাবে কাজ করে?


Vaadin 14 এবং পরবর্তী সংস্করণগুলোতে @Route অ্যানোটেশন ব্যবহার করে রুট এবং ভিউগুলিকে ডিফাইন করা হয়। একটি parent route এবং তার মধ্যে থাকা nested routes কে @Route অ্যানোটেশন দিয়ে সহজেই সংজ্ঞায়িত করা যায়।

Parent Route এবং Nested Routes উদাহরণ

ধরা যাক, আমাদের একটি অ্যাপ্লিকেশন রয়েছে যেখানে দুটি প্রধান অংশ রয়েছে: Dashboard এবং Settings। Settings এর মধ্যে আরও দুটি সাব-প্যানেল রয়েছে: Profile Settings এবং Account Settings

এটা নির্ধারণ করতে হবে যে Dashboard একটি parent route এবং তার ভিতরে দুটি nested route রয়েছে: Profile Settings এবং Account Settings

@Route("dashboard")
public class DashboardView extends VerticalLayout {
    public DashboardView() {
        add(new Text("Welcome to the Dashboard!"));
    }
}

@Route(value = "profile", layout = DashboardView.class)
public class ProfileSettingsView extends VerticalLayout {
    public ProfileSettingsView() {
        add(new Text("Profile Settings"));
    }
}

@Route(value = "account", layout = DashboardView.class)
public class AccountSettingsView extends VerticalLayout {
    public AccountSettingsView() {
        add(new Text("Account Settings"));
    }
}

ভিউর মধ্যে layout এর ভূমিকা


Vaadin-এ layout একটি ভিউ বা পেজের কাঠামোকে সংজ্ঞায়িত করে। Nested Routes ব্যবহারের সময়, আপনি layout ফিল্ডের মাধ্যমে parent route এর জন্য একটি কম্পোনেন্ট (যেমন DashboardView) নির্ধারণ করতে পারেন। এর মাধ্যমে, সব nested route সেই layout-এ রেন্ডার হবে। এর ফলে, আপনি একটি নির্দিষ্ট কাঠামোতে, একাধিক ভিউকে সন্নিবেশিত (nested) করতে পারবেন।

উপরে দেয়া উদাহরণে DashboardView.class layout হিসেবে উল্লেখ করা হয়েছে, যার মাধ্যমে Profile Settings এবং Account Settings উভয়ই Dashboard এর ভিতরে প্রদর্শিত হবে।

Nested Routes এর সুবিধা


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

ভিউ মধ্যে ভিউ রেন্ডারিং (Nested Views)


একটি nested view তৈরি করার জন্য, আপনি একটি parent view তৈরি করেন এবং তারপর তার মধ্যে সাব-ভিউ রেন্ডার করেন। নিচে একটি উদাহরণ দেওয়া হল:

@Route("main")
public class MainView extends VerticalLayout {
    
    public MainView() {
        add(new Text("This is the Main View"));
        
        // Nested View রেন্ডার করা
        add(new RouterLink("Go to Profile", ProfileSettingsView.class));
        add(new RouterLink("Go to Account", AccountSettingsView.class));
    }
}

এখানে, MainView একটি parent view এবং ProfileSettingsView এবং AccountSettingsView সাব-ভিউ হিসেবে রেন্ডার করা হয়।

Nested Routes এবং Layouts একত্রিত করা


Nested routes এবং layouts একত্রিত করার সময়, আপনি আপনার অ্যাপ্লিকেশনকে আরও মডুলার এবং সুসংগঠিত করতে পারেন। একাধিক সাব-প্যানেল এবং কন্টেন্ট যুক্ত করার মাধ্যমে, আপনি ওয়েব অ্যাপ্লিকেশনের প্রতিটি অংশকে পৃথকভাবে ডিজাইন করতে পারবেন।

@Route(value = "admin", layout = AdminLayout.class)
public class AdminView extends VerticalLayout {
    public AdminView() {
        add(new Text("Welcome to the Admin Panel!"));
    }
}

@Route(value = "users", layout = AdminLayout.class)
public class UserManagementView extends VerticalLayout {
    public UserManagementView() {
        add(new Text("User Management"));
    }
}

এখানে AdminLayout একটি মূল লেআউট হিসেবে কাজ করছে, যা বিভিন্ন সাব-প্যানেল (এখানে AdminView এবং UserManagementView) দেখাবে।


Nested routes এবং views Vaadin অ্যাপ্লিকেশনে একটি শক্তিশালী উপায় হয়ে উঠেছে অ্যাপ্লিকেশনগুলোকে আরও স্কেলেবল, সুসংগঠিত এবং সহজে রক্ষণাবেক্ষণযোগ্য করার জন্য। এটি একটি প্রজেক্টের নেভিগেশন এবং UI ভিউ ম্যানেজমেন্টকে পরিপূর্ণভাবে সংহত করে, যা বড় এবং জটিল অ্যাপ্লিকেশনগুলোর জন্য অপরিহার্য।

Content added By
Promotion

Are you sure to start over?

Loading...