Router কী এবং এর ভূমিকা

Ember.js Router এবং Routes - এমবারজেএস (EmberJS) - Web Development

275

Ember.js Router হল Ember.js অ্যাপ্লিকেশনের গুরুত্বপূর্ণ একটি অংশ, যা URL এবং রাউটগুলোকে সংযুক্ত করে এবং ব্যবহারকারীর নেভিগেশন পরিচালনা করে। এটি অ্যাপ্লিকেশনের বিভিন্ন স্টেট বা ভিউকে একে অপরের সাথে সংযোগ স্থাপন করার মাধ্যমে, এক পেজ অ্যাপ্লিকেশন (SPA) তৈরি করতে সহায়ক। Router URL থেকে রাউট নির্বাচন করে এবং সেগুলির সাথে সম্পর্কিত কম্পোনেন্ট, মডেল, এবং টেমপ্লেট রেন্ডার করে।


Ember.js Router এর ভূমিকা

১. নেভিগেশন পরিচালনা

Ember.js এর Router ব্যবহারকারী যখন URL পরিবর্তন করেন, তখন সেই পরিবর্তনের ভিত্তিতে সঠিক রুট নির্বাচন করে এবং সংশ্লিষ্ট ভিউ (কম্পোনেন্ট এবং টেমপ্লেট) রেন্ডার করে। এটি অ্যাপ্লিকেশনের মধ্যে এক পেজ অ্যাপ্লিকেশন (SPA) এর নেভিগেশন ব্যবস্থাকে কার্যকর করে তোলে। ফলে, ব্রাউজারের পৃষ্ঠা রিফ্রেশ না করেই অ্যাপ্লিকেশনের বিভিন্ন অংশের মধ্যে নেভিগেট করা সম্ভব হয়।

২. রাউট কনফিগারেশন

Ember.js এর Router এ আপনি রাউট কনফিগারেশন তৈরি করে বিভিন্ন URL পাথকে সংশ্লিষ্ট model, controller, এবং template এর সাথে সম্পর্কিত করতে পারেন। এই কনফিগারেশনটি app/router.js ফাইলে করা হয়।

৩. ডেটা ফেচিং (Model)

Ember.js Router ব্যবহার করে, আপনি রাউটের জন্য প্রয়োজনীয় ডেটা model() ফাংশন ব্যবহার করে ফেচ করতে পারেন। যখন রাউটটি পরিবর্তিত হয়, তখন স্বয়ংক্রিয়ভাবে ডেটা লোড হয়ে যায় এবং তা টেমপ্লেটে রেন্ডার হয়।

৪. রাউট ট্রানজিশন

রাউট ট্রানজিশন ব্যবস্থাপনায় Router সাহায্য করে। যখন একটি রাউট থেকে অন্য রাউটে যান, তখন Ember.js সঠিকভাবে model, controller, এবং template ট্রানজিশন পরিচালনা করে, এবং ব্যবহারকারীর জন্য একটি স্মুথ অভিজ্ঞতা নিশ্চিত করে।

৫. নেস্টেড রাউট (Nested Routes)

Ember.js Router আপনাকে নেস্টেড রাউট ব্যবহারের সুবিধা দেয়, যার মাধ্যমে একটি রাউটের মধ্যে অন্য রাউট অন্তর্ভুক্ত করা যায়। এটি বড় অ্যাপ্লিকেশন গঠন করতে সাহায্য করে এবং বিভিন্ন রাউটের মধ্যে সম্পর্ক স্থাপন করে।


Ember.js Router এর কনফিগারেশন

Ember.js অ্যাপ্লিকেশনের Router কনফিগার করা হয় app/router.js ফাইলে। এখানে আপনি URL এবং routes সংজ্ঞায়িত করেন। Router.map() ফাংশনে সমস্ত রাউটের কনফিগারেশন করা হয়।

উদাহরণ:

import EmberRouter from '@ember/routing/router';
import config from './config/environment';

const Router = EmberRouter.extend({
  location: config.locationType,
  rootURL: config.rootURL
});

Router.map(function() {
  this.route('home'); // home রাউট
  this.route('about'); // about রাউট
  this.route('contact'); // contact রাউট
});

export default Router;

এখানে, Router.map() ফাংশনে বিভিন্ন রাউটকে কনফিগার করা হয়েছে, যেমন home, about, এবং contact রাউট। প্রতিটি রাউটের সাথে সংশ্লিষ্ট মডেল এবং টেমপ্লেট থাকবে যা রেন্ডার হবে।


Route ফাইল এবং রাউট কনফিগারেশন

Ember.js-এ রাউট কনফিগারেশন করার জন্য Router এবং Route দুটি আলাদা কনসেপ্ট ব্যবহৃত হয়।

Route ফাইল কনফিগারেশন

একটি রাউট তৈরি করতে Ember CLI ব্যবহার করা হয়। উদাহরণস্বরূপ:

ember generate route about

এটি app/routes/about.js ফাইলে একটি নতুন রাউট তৈরি করবে। রাউট ফাইলের মধ্যে আপনি model() এবং setupController() কনফিগার করতে পারেন।

// app/routes/about.js
import Route from '@ember/routing/route';

export default class AboutRoute extends Route {
  model() {
    return {
      name: 'Ember.js',
      description: 'A JavaScript framework for building web applications.'
    };
  }
}

এখানে, model() ফাংশনটি Ember.js সম্পর্কিত ডেটা রিটার্ন করছে, যা টেমপ্লেটে রেন্ডার হবে।

Template ফাইল

রাউটের জন্য একটি টেমপ্লেট app/templates/about.hbs ফাইলে তৈরি হয়, যেখানে model থেকে ডেটা রেন্ডার করা হয়।

<!-- app/templates/about.hbs -->
<h1>About {{model.name}}</h1>
<p>{{model.description}}</p>

এটি about রাউটে Ember.js এর নাম এবং বর্ণনা দেখাবে।


Ember.js Router এর গুরুত্বপূর্ণ বৈশিষ্ট্য

  1. Dynamic Segments: URL এর অংশ হিসেবে ডাইনামিক প্যারামিটার ব্যবহার করা যায়। উদাহরণস্বরূপ:

    this.route('post', { path: '/post/:post_id' });
    
  2. Query Parameters: URL এর সাথে কোয়েরি প্যারামিটার ব্যবহার করে রাউটের মডেল ফিল্টার করা যায়।

    this.route('search', { path: '/search/:query' });
    
  3. Nested Routes: বড় অ্যাপ্লিকেশন ব্যবস্থাপনায় রাউটের মধ্যে অন্য রাউট অন্তর্ভুক্ত করা যেতে পারে।

    this.route('about', function() {
      this.route('team');
    });
    
  4. model(): রাউটের জন্য ডেটা বা মডেল ফেচ করার জন্য model() ফাংশন ব্যবহৃত হয়।
  5. afterModel(): মডেল লোড হওয়ার পর কিছু অতিরিক্ত কাজ করার জন্য ব্যবহৃত হয়।
  6. setupController(): রাউটের কন্ট্রোলার এবং মডেল সংযুক্ত করার জন্য ব্যবহৃত হয়।

Ember.js Router এবং Routes অ্যাপ্লিকেশনের নেভিগেশন এবং ডেটা লোডিং সহজ ও কার্যকর করে তোলে। এটি অ্যাপ্লিকেশনের বিভিন্ন অংশের মধ্যে স্বচ্ছভাবে নেভিগেশন সম্ভব করে, এবং এক পেজ অ্যাপ্লিকেশন তৈরি করতে সহায়ক। Dynamic Segments, Query Parameters, এবং Nested Routes ব্যবহার করে বড় এবং জটিল অ্যাপ্লিকেশন তৈরি করা সম্ভব। Ember.js এর Router একটি শক্তিশালী রাউটিং ব্যবস্থা প্রদান করে যা ডেভেলপমেন্ট প্রক্রিয়াকে দ্রুত এবং কার্যকরী করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...