BackboneJS তে Routes ব্যবহার করে অ্যাপ্লিকেশন নেভিগেশন (নেভিগেশন বা URL রাউটিং) পরিচালনা করা হয়। রাউটিং মূলত ইউজারের URL এ পরিবর্তন অনুসারে ভিউ পরিবর্তন এবং সেই অনুযায়ী অ্যাকশন হ্যান্ডলিং করা। এটি স্পা (Single Page Application) তৈরি করার জন্য অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি আপনাকে অ্যাপ্লিকেশন স্টেটের উপর ভিত্তি করে ডাইনামিক কনটেন্ট রেন্ডার করার সুযোগ দেয়।
BackboneJS এ Routes কী?
BackboneJS এ Routes হলো একটি রাউটিং সিস্টেম, যা URL এর পাথ অনুসারে নির্দিষ্ট ফাংশন বা ভিউকে ট্রিগার করে। সাধারণত, আপনি যখন URL এর কোনো অংশ পরিবর্তন করেন (যেমন /home, /about), তখন Backbone.Router একটি নির্দিষ্ট রুট বা অ্যাকশন কল করে, যা ভিউতে ডেটা রেন্ডার করে অথবা কোনো নির্দিষ্ট কাজ সম্পন্ন করে।
BackboneJS Routes কিভাবে কাজ করে?
BackboneJS এ রাউটিং চালু করার জন্য প্রধানত দুটি অংশ ব্যবহৃত হয়:
- Backbone.Router: এই ক্লাস URL এর পাথ মেলানোর কাজ করে।
- Backbone.history: এটি URL-এর ইতিহাস পরিচালনা করে এবং অ্যাপ্লিকেশন স্টেট ম্যানেজমেন্ট করে।
BackboneJS এ Routes তৈরি করার ধাপ
1. Backbone.Router তৈরি করা
BackboneJS এর Router ক্লাসের মাধ্যমে রাউট তৈরি করা হয়। Router ক্লাসটি বিভিন্ন রুটের জন্য বিভিন্ন ফাংশন নির্ধারণ করে। যখন কোনো রুটের URL মেলে, তখন তার সাথে যুক্ত ফাংশনটি কল করা হয়।
// Router তৈরি করা
var AppRouter = Backbone.Router.extend({
// রাউটস ডিফাইন করা
routes: {
'home': 'homePage', // /home URL এর জন্য homePage ফাংশন কল হবে
'about': 'aboutPage', // /about URL এর জন্য aboutPage ফাংশন কল হবে
'*actions': 'defaultPage' // অন্য যেকোনো URL এর জন্য defaultPage ফাংশন কল হবে
},
// homePage ফাংশন
homePage: function() {
console.log('Welcome to the Home Page!');
},
// aboutPage ফাংশন
aboutPage: function() {
console.log('Welcome to the About Page!');
},
// defaultPage ফাংশন
defaultPage: function(actions) {
console.log('Page not found, default action triggered');
}
});
এখানে আমরা routes প্রপার্টি ব্যবহার করেছি যা একটি অবজেক্ট হিসেবে রাউট এবং তাদের সাথে সংশ্লিষ্ট ফাংশন সংজ্ঞায়িত করে।
2. Backbone.history.start() ব্যবহার করা
BackboneJS এর history অবজেক্ট অ্যাপ্লিকেশনের ইতিহাস পরিচালনা করে। এটি URL পরিবর্তন মনিটর করে এবং যখন URL পরিবর্তন হয় তখন সঠিক রাউট ফাংশন কল করে। history.start() মেথডটি রাউটিং সিস্টেম চালু করে এবং আপনার অ্যাপ্লিকেশনকে URL এর ভিত্তিতে কাজ করার সুযোগ দেয়।
// Router ইনস্ট্যান্স তৈরি করা
var appRouter = new AppRouter();
// Backbone history শুরু করা
Backbone.history.start();
Backbone.history.start() ডাকা ছাড়া রাউটিং কাজ করবে না, কারণ এটি URL পরিবর্তন ট্র্যাক করতে এবং সঠিক রাউট ফাংশন কল করতে ব্যবহৃত হয়।
Routes এর মাধ্যমে নেভিগেশন পরিচালনা করা
3. URL পরিবর্তন করে নেভিগেশন করা
BackboneJS এ navigate() মেথড ব্যবহার করে নেভিগেট করা যায়। এই মেথডের মাধ্যমে URL পরিবর্তন করা হয় এবং তা রাউটিং সিস্টেমে প্রাসঙ্গিক ফাংশন কল করতে সহায়তা করে। navigate() মেথডটি হ্যাশচেঞ্জ (hashchange) কিংবা পুশস্টেট (pushState) পদ্ধতি ব্যবহার করে URL পরিবর্তন করে।
// navigate() ব্যবহার করে URL পরিবর্তন করা
appRouter.navigate('home', { trigger: true }); // /home URL এ নেভিগেট করবে
appRouter.navigate('about', { trigger: true }); // /about URL এ নেভিগেট করবে
এখানে trigger: true প্যারামিটার দেওয়া হয়েছে, যাতে BackboneJS রাউট ফাংশনটিকে ট্রিগার করে।
4. Backbone Router এর URL হ্যান্ডলিং
BackboneJS এ Router ব্যবহারের মাধ্যমে অ্যাপ্লিকেশন URL হ্যান্ডলিং খুবই সহজ হয়। আমরা একটি URL নির্দিষ্ট ফাংশনের সাথে যুক্ত করতে পারি, যাতে অ্যাপ্লিকেশন বিভিন্ন ভিউ বা উপাদান রেন্ডার করতে পারে।
var AppRouter = Backbone.Router.extend({
routes: {
'home': 'homePage',
'about': 'aboutPage',
'contact/:id': 'contactPage', // ডাইনামিক রাউট
'*actions': 'defaultPage'
},
homePage: function() {
console.log('Home page');
},
aboutPage: function() {
console.log('About page');
},
// ডাইনামিক প্যারামিটার :id এর মাধ্যমে URL হ্যান্ডলিং
contactPage: function(id) {
console.log('Contact page with ID: ' + id);
},
defaultPage: function(actions) {
console.log('Page not found');
}
});
// Router ইনস্ট্যান্স তৈরি করা
var appRouter = new AppRouter();
// Backbone.history.start() কল করা
Backbone.history.start();
// URL পরিবর্তন
appRouter.navigate('contact/123', { trigger: true }); // Contact page with ID: 123
এখানে contact/:id রাউটের মাধ্যমে একটি ডাইনামিক প্যারামিটার (id) ব্যবহার করা হয়েছে, যা URL এ থাকা মানকে ফাংশনে পাস করে। যেমন /contact/123 URL হ্যান্ডলিং করলে, তা id প্যারামিটার হিসেবে 123 পাস করবে।
সারাংশ
BackboneJS এ Routes ব্যবহারের মাধ্যমে আপনি URL পাথ অনুসারে বিভিন্ন ফাংশন বা ভিউ কল করতে পারেন। এটি Single Page Application (SPA) এর জন্য খুবই উপকারী, কারণ এর মাধ্যমে আপনি একটি একক HTML পৃষ্ঠায় ইউজারের নেভিগেশন পরিচালনা করতে পারেন। BackboneJS এর Router ক্লাস, routes প্রপার্টি, এবং Backbone.history.start() ব্যবহার করে URL পরিবর্তন এবং ইভেন্ট হ্যান্ডলিং করা হয়।
- navigate() মেথড দিয়ে URL পরিবর্তন করা যায়।
- Router ক্লাসের মাধ্যমে রাউট তৈরি করে এবং তা ট্রিগার করা হয়।
- Backbone.history.start() অ্যাপ্লিকেশনের ইতিহাস ম্যানেজমেন্ট শুরু করে।
এই সুবিধাগুলো আপনার অ্যাপ্লিকেশনের নেভিগেশন এবং UI রেন্ডারিংকে আরও ডাইনামিক এবং ইউজার-বান্ধব করে তোলে।
Read more