Aurelia ফ্রেমওয়ার্ক একটি শক্তিশালী এবং নমনীয় টেমপ্লেটিং সিস্টেম প্রদান করে যা ডেটা বাইন্ডিং এবং UI-র সাথে মিথস্ক্রিয়া করতে ব্যবহৃত হয়। Aurelia এর টেমপ্লেটিং সিস্টেম HTML-ভিত্তিক এবং এটি জাভাস্ক্রিপ্ট/টাইপস্ক্রিপ্ট কোডের সঙ্গে ডাইনামিকভাবে কাজ করে। এটি একটি ডিক্লারেটিভ ফ্রেমওয়ার্ক যা HTML এবং JavaScript এর মধ্যে শক্তিশালী ইন্টিগ্রেশন তৈরি করে।
Aurelia-তে টেমপ্লেট এবং ভিউমডেল একসাথে কাজ করে এবং সহজে ডেটা বাইন্ডিং এবং লজিক্যাল ফাংশন তৈরি করতে সহায়তা করে।
Aurelia টেমপ্লেটিং সিস্টেমের মূল বৈশিষ্ট্য
১. টেমপ্লেট সিনট্যাক্স
Aurelia এর টেমপ্লেট HTML সিনট্যাক্স অনুসরণ করে, যা ডেভেলপারদের জন্য খুবই পরিচিত এবং সহজ। এতে জাভাস্ক্রিপ্ট/টাইপস্ক্রিপ্ট কোডের সাথে ডেটা বাইন্ডিং এবং লোকিক্যাল কন্ট্রোল যুক্ত করা যায়। এখানে সাধারণ HTML ট্যাগগুলোর সাথে কিছু Aurelia-কেস সিনট্যাক্স ব্যবহৃত হয়, যেমন ${} সিঙ্ক্রোনাইজড ডেটা এবং bind বা one-way বাইন্ডিং।
উদাহরণ:
<template>
<h1>${message}</h1>
<button click.delegate="changeMessage()">Click me</button>
</template>
app.js:
export class App {
message = 'Hello, Aurelia!';
changeMessage() {
this.message = 'You clicked the button!';
}
}
এখানে, ${message} দ্বারা message প্রোপার্টি UI তে প্রদর্শিত হচ্ছে এবং click.delegate দ্বারা বাটনে ক্লিক করার পর changeMessage() মেথড কল হবে, যা message প্রোপার্টির মান পরিবর্তন করবে।
২. ডেটা বাইন্ডিং
Aurelia-এর টেমপ্লেটিং সিস্টেমে ডেটা বাইন্ডিং অত্যন্ত গুরুত্বপূর্ণ একটি বৈশিষ্ট্য। এটি UI এবং ডেটা মডেলের মধ্যে সিঙ্ক্রোনাইজেশনকে সহজ এবং স্বচ্ছ করে তোলে। Aurelia দুটি প্রধান ডেটা বাইন্ডিং পদ্ধতি সাপোর্ট করে:
- One-way data binding: ডেটা মডেল থেকে ভিউতে পাঠানো হয়।
- Two-way data binding: ডেটা মডেল এবং UI একে অপরের সাথে সিঙ্ক্রোনাইজ থাকে।
উদাহরণ:
<template>
<input value.two-way="name">
<h2>Hello, ${name}!</h2>
</template>
app.js:
export class App {
name = 'John';
}
এখানে, value.two-way="name" দ্বারা ইনপুট ফিল্ডে টাইপ করা প্রতিটি অক্ষর name প্রোপার্টিতে সিঙ্ক্রোনাইজ হয়ে যাবে, এবং UI তে তা প্রদর্শিত হবে।
৩. এভেন্ট বাইন্ডিং
Aurelia সহজেই ইভেন্ট বাইন্ডিং সমর্থন করে। এটি click, input, change ইত্যাদি ইভেন্টের সাথে যুক্ত হতে পারে। এই ইভেন্টগুলোকে event.delegate, event.trigger বা event.capture ব্যবহার করে অ্যাপ্লিকেশনের ফাংশনালিটি ট্রিগার করা যায়।
উদাহরণ:
<template>
<button click.delegate="sayHello()">Say Hello</button>
</template>
app.js:
export class App {
sayHello() {
alert('Hello from Aurelia!');
}
}
এখানে, click.delegate="sayHello()" কমান্ডটি বাটনে ক্লিক হলে sayHello() মেথড কল করবে এবং এলার্ট দেখাবে।
৪. নেস্টেড কম্পোনেন্টস (Nested Components)
Aurelia আপনাকে কম্পোনেন্ট-based আর্কিটেকচার ব্যবহার করার সুযোগ দেয়। আপনি সহজেই একটি কম্পোনেন্ট তৈরি করতে পারেন এবং তা অন্য একটি কম্পোনেন্টে নেস্ট করতে পারেন। এতে কোডের পুনরায় ব্যবহারযোগ্যতা এবং মডুলারিটি বৃদ্ধি পায়।
উদাহরণ:
- parent.html:
<template>
<child-component name="Aurelia"></child-component>
</template>
- child.html:
<template>
<h2>Hello, ${name}!</h2>
</template>
- child.js:
export class Child {
name = 'Child Component';
}
এখানে, child-component একটি নেস্টেড কম্পোনেন্ট হিসেবে ব্যবহার করা হয়েছে এবং এটি name প্রোপার্টি প্রদর্শন করবে।
৫. স্টাইলিং
Aurelia টেমপ্লেটিং সিস্টেমে স্টাইলিং যোগ করা খুব সহজ। আপনি CSS, SCSS বা স্টাইলশীট ফাইল ব্যবহার করতে পারেন। আপনি কম্পোনেন্ট লেভেলে স্কোপড স্টাইলিং বা গ্লোবাল স্টাইল ব্যবহার করতে পারেন।
উদাহরণ:
<template>
<h1 class="welcome-message">Welcome to Aurelia!</h1>
</template>
<style>
.welcome-message {
color: blue;
}
</style>
এখানে, style ট্যাগের মাধ্যমে welcome-message ক্লাসের জন্য স্টাইলিং করা হয়েছে।
৬. কম্পোনেন্ট লাইফসাইকেল হুকস
Aurelia টেমপ্লেটিং সিস্টেমে কম্পোনেন্টের লাইফসাইকেল হুকস ব্যবহারের সুযোগ রয়েছে। এই হুকসগুলির মাধ্যমে আপনি কম্পোনেন্টের ক্রিয়েট, ইনিশিয়ালাইজ, রেন্ডার, এবং ডেস্ট্রয়ের সময় কিছু কার্যক্রম সম্পাদন করতে পারেন।
হুকস উদাহরণ:
- attached(): কম্পোনেন্ট DOM এ যুক্ত হওয়ার পর কল হয়।
- detached(): কম্পোনেন্ট DOM থেকে সরানোর পর কল হয়।
export class App {
attached() {
console.log('Component attached to DOM');
}
detached() {
console.log('Component detached from DOM');
}
}
উপসংহার
Aurelia এর টেমপ্লেটিং সিস্টেম খুবই শক্তিশালী এবং ব্যবহারকারী-বান্ধব, যা আপনাকে HTML ও JavaScript-এর মধ্যে কার্যকরী সমন্বয় স্থাপন করতে সহায়তা করে। ডেটা বাইন্ডিং, এভেন্ট বাইন্ডিং, নেস্টেড কম্পোনেন্টস, লাইফসাইকেল হুকস ইত্যাদি ব্যবহার করে আপনি অ্যাপ্লিকেশনের বিভিন্ন অংশের মধ্যে কার্যকরী যোগাযোগ স্থাপন করতে পারবেন। এটি কোডকে পরিষ্কার, মডুলার এবং স্কেলেবল করে তোলে, যা উন্নত এবং রিচ ওয়েব অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে।
Read more