আঙ্গুলার ডাইরেক্টিভ
আঙ্গুলার ডাইরেক্টিভ
আঙ্গুলার (Angular) একটি শক্তিশালী জাভাস্ক্রিপ্ট ফ্রেমওয়ার্ক যা ওয়েব অ্যাপ্লিকেশন তৈরির জন্য ব্যবহৃত হয়। এর অন্যতম গুরুত্বপূর্ণ বৈশিষ্ট্য হলো ডাইরেক্টিভ (Directives)। ডাইরেক্টিভগুলি এইচটিএমএল (HTML) এলিমেন্টের আচরণ পরিবর্তন করে এবং অ্যাপ্লিকেশনকে আরও গতিশীল করে তোলে। এই নিবন্ধে, আঙ্গুলার ডাইরেক্টিভ সম্পর্কে বিস্তারিত আলোচনা করা হলো।
ডাইরেক্টিভ কী?
ডাইরেক্টিভ হলো নির্দেশিকা যা আঙ্গুলার কম্পাইলারকে (compiler) এইচটিএমএল-এর আচরণ পরিবর্তন করতে বলে। এগুলো মূলত এইচটিএমএল-এর সাথে যুক্ত থাকে এবং ডোম (DOM) ম্যানিপুলেট করে অ্যাপ্লিকেশনকে নতুন রূপ দেয়। ডাইরেক্টিভ ব্যবহার করে, আপনি বিদ্যমান এইচটিএমএল এলিমেন্টের বৈশিষ্ট্য পরিবর্তন করতে পারেন অথবা নতুন এইচটিএমএল এলিমেন্ট তৈরি করতে পারেন।
ডাইরেক্টিভের প্রকারভেদ
আঙ্গুলারে তিন ধরনের ডাইরেক্টিভ রয়েছে:
১. কম্পোনেন্ট ডাইরেক্টিভ (Component Directives):
- কম্পোনেন্ট ডাইরেক্টিভ হলো সবচেয়ে বেশি ব্যবহৃত ডাইরেক্টিভ। এটি একটি টেমপ্লেট (template) এবং একটি ক্লাস (class) এর সমন্বয়ে গঠিত। কম্পোনেন্ট ডাইরেক্টিভ ব্যবহার করে ইউজার ইন্টারফেসের (user interface) অংশ তৈরি করা হয়। প্রতিটি আঙ্গুলার অ্যাপ্লিকেশন সাধারণত একাধিক কম্পোনেন্ট দিয়ে গঠিত হয়। - উদাহরণ: `app.component`, `product-list.component` ইত্যাদি। - কম্পোনেন্ট হলো ডাইরেক্টিভের একটি বিশেষ রূপ।
২. স্ট্রাকচারাল ডাইরেক্টিভ (Structural Directives):
- স্ট্রাকচারাল ডাইরেক্টিভ ডোম-এর গঠন পরিবর্তন করে। এটি এইচটিএমএল এলিমেন্ট যোগ বা অপসারণ করতে পারে। - উদাহরণ: `*ngIf`, `*ngFor`, `*ngSwitch` ইত্যাদি। - `*ngIf` ডাইরেক্টিভ কোনো শর্তের উপর ভিত্তি করে এলিমেন্ট দেখায় বা লুকায়। - `*ngFor` ডাইরেক্টিভ কোনো তালিকা বা অ্যারে (array) থেকে ডেটা নিয়ে এইচটিএমএল এলিমেন্ট তৈরি করে। - লুপ এবং কন্ডিশনাল স্টেটমেন্ট এর ধারণা এখানে গুরুত্বপূর্ণ।
৩. অ্যাট্রিবিউট ডাইরেক্টিভ (Attribute Directives):
- অ্যাট্রিবিউট ডাইরেক্টিভ এইচটিএমএল এলিমেন্টের অ্যাট্রিবিউট পরিবর্তন করে এলিমেন্টের আচরণ পরিবর্তন করে। এটি ডোম-এর গঠন পরিবর্তন করে না। - উদাহরণ: `[ngStyle]`, `[ngClass]` ইত্যাদি। - `[ngStyle]` ডাইরেক্টিভ এলিমেন্টের স্টাইল পরিবর্তন করে। - `[ngClass]` ডাইরেক্টিভ এলিমেন্টের সিএসএস (CSS) ক্লাস পরিবর্তন করে। - সিএসএস এবং এইচটিএমএল অ্যাট্রিবিউট সম্পর্কে ধারণা থাকতে হবে।
ডাইরেক্টিভ তৈরি করার নিয়ম
আঙ্গুলারে ডাইরেক্টিভ তৈরি করার জন্য `@Directive` ডেকোরেটর ব্যবহার করা হয়। নিচে একটি সাধারণ অ্যাট্রিবিউট ডাইরেক্টিভ তৈরির উদাহরণ দেওয়া হলো:
```typescript import { Directive, ElementRef, Input } from '@angular/core';
@Directive({
selector: '[appHighlight]' // ডাইরেক্টিভের সিলেকটর
}) export class HighlightDirective {
constructor(private el: ElementRef) { }
@Input('appHighlight') highlightColor: string;
ngOnInit() { this.el.nativeElement.style.backgroundColor = this.highlightColor; }
} ```
এই উদাহরণে:
- `@Directive` ডেকোরেটর ব্যবহার করে `HighlightDirective` নামে একটি ডাইরেক্টিভ তৈরি করা হয়েছে। - `selector` প্রোপার্টি ডাইরেক্টিভটি কোথায় ব্যবহার করা হবে তা নির্দিষ্ট করে। এখানে `[appHighlight]` সিলেকটর ব্যবহার করা হয়েছে, যার মানে হলো `<element appHighlight="color">` - এই সিনট্যাক্সে ডাইরেক্টিভটি ব্যবহার করা যাবে। - `ElementRef` ব্যবহার করে এইচটিএমএল এলিমেন্ট অ্যাক্সেস করা হয়েছে। - `@Input` ডেকোরেটর ব্যবহার করে `highlightColor` নামে একটি ইনপুট প্রোপার্টি তৈরি করা হয়েছে, যার মাধ্যমে ডাইরেক্টিভে রং পাঠানো যাবে। - `ngOnInit` লাইফসাইকেল হুক (lifecycle hook) ব্যবহার করে এলিমেন্টের ব্যাকগ্রাউন্ড কালার পরিবর্তন করা হয়েছে। - জাভাস্ক্রিপ্ট ডেকোরেটর এবং লাইফসাইকেল হুক সম্পর্কে জ্ঞান এক্ষেত্রে প্রয়োজনীয়।
ডাইরেক্টিভ ব্যবহারের নিয়ম
ডাইরেক্টিভ ব্যবহার করার জন্য প্রথমে এটিকে আপনার মডিউলে (module) ডিক্লেয়ার (declare) করতে হবে। তারপর আপনি এইচটিএমএল টেমপ্লেটে এটি ব্যবহার করতে পারবেন।
উদাহরণ:
```html
This text will be highlighted in yellow.
```
এখানে `appHighlight` অ্যাট্রিবিউটের মাধ্যমে `HighlightDirective` ডাইরেক্টিভ ব্যবহার করা হয়েছে এবং `yellow` রংটি `highlightColor` ইনপুট প্রোপার্টির মাধ্যমে পাঠানো হয়েছে।
স্ট্রাকচারাল ডাইরেক্টিভের ব্যবহার
স্ট্রাকচারাল ডাইরেক্টিভ ব্যবহারের উদাহরণ:
```html
Welcome, user!
```
- প্রথম উদাহরণে, `*ngFor` ডাইরেক্টিভ `items` অ্যারের প্রতিটি উপাদানকে একটি `
- অ্যারে এবং লজিক্যাল অপারেটর সম্পর্কে ধারণা থাকতে হবে।
অ্যাট্রিবিউট ডাইরেক্টিভের ব্যবহার
অ্যাট্রিবিউট ডাইরেক্টিভ ব্যবহারের উদাহরণ:
```html <img [ngStyle]="{'width': '100px', 'height': '100px'}" src="image.jpg">
<button [ngClass]="{'active': isActive}">Click me</button> ```
- প্রথম উদাহরণে, `[ngStyle]` ডাইরেক্টিভ ব্যবহার করে `<img>` এলিমেন্টের `width` এবং `height` স্টাইল পরিবর্তন করা হয়েছে। - দ্বিতীয় উদাহরণে, `[ngClass]` ডাইরেক্টিভ ব্যবহার করে `<button>` এলিমেন্টে `active` ক্লাস যোগ করা হয়েছে, যদি `isActive` ভেরিয়েবলের মান `true` হয়। - স্টাইলশীট এবং ক্লাস সম্পর্কে ধারণা থাকতে হবে।
ডাইরেক্টিভের সুবিধা
- কোড পুনর্ব্যবহারযোগ্যতা (Code Reusability): ডাইরেক্টিভ ব্যবহার করে আপনি একই কোড একাধিক স্থানে ব্যবহার করতে পারবেন, যা আপনার কোডকে আরও মডুলার (modular) এবং সহজ করে তুলবে। - ডোম ম্যানিপুলেশন (DOM Manipulation): ডাইরেক্টিভ ডোম ম্যানিপুলেট করে অ্যাপ্লিকেশনকে আরও গতিশীল করে তোলে। - এইচটিএমএল-এর সাথে একত্রতা (Integration with HTML): ডাইরেক্টিভ এইচটিএমএল-এর সাথে সহজেই যুক্ত করা যায়, যা ডেভেলপারদের জন্য কাজ সহজ করে দেয়। - পরীক্ষার সুবিধা (Testability): ডাইরেক্টিভগুলি সহজে পরীক্ষা করা যায়, যা আপনার অ্যাপ্লিকেশনের গুণমান নিশ্চিত করে। - মডুলারিটি এবং কোড অপটিমাইজেশন এর জন্য ডাইরেক্টিভ খুবই উপযোগী।
ডাইরেক্টিভ তৈরির সময় বিবেচ্য বিষয়
- সিলেকটর (Selector): ডাইরেক্টিভের সিলেকটর এমনভাবে নির্বাচন করুন যাতে এটি আপনার অ্যাপ্লিকেশনের অন্যান্য এলিমেন্টের সাথে কনফ্লিক্ট (conflict) না করে। - ইনপুট প্রোপার্টি (Input Property): ডাইরেক্টিভে ডেটা পাঠানোর জন্য ইনপুট প্রোপার্টি ব্যবহার করুন। - লাইফসাইকেল হুক (Lifecycle Hook): ডাইরেক্টিভের বিভিন্ন লাইফসাইকেল হুক ব্যবহার করে সঠিক সময়ে সঠিক কাজ করুন। - কর্মক্ষমতা (Performance): ডাইরেক্টিভ ব্যবহারের সময় কর্মক্ষমতার দিকে খেয়াল রাখুন। অতিরিক্ত ডোম ম্যানিপুলেশন আপনার অ্যাপ্লিকেশনের গতি কমিয়ে দিতে পারে। - পারফরম্যান্স অপটিমাইজেশন এবং ডিবাগিং এর জন্য সতর্ক থাকা উচিত।
বিভিন্ন ধরনের ডাইরেক্টিভের উদাহরণ
| ডাইরেক্টিভের নাম | প্রকার | ব্যবহার | |---|---|---| | `NgClass` | অ্যাট্রিবিউট | এইচটিএমএল এলিমেন্টের ক্লাস পরিবর্তন করে। | | `NgStyle` | অ্যাট্রিবিউট | এইচটিএমএল এলিমেন্টের স্টাইল পরিবর্তন করে। | | `NgIf` | স্ট্রাকচারাল | শর্তের ভিত্তিতে এলিমেন্ট দেখায় বা লুকায়। | | `NgFor` | স্ট্রাকচারাল | লুপের মাধ্যমে এলিমেন্ট তৈরি করে। | | `NgSwitch` | স্ট্রাকচারাল | বিভিন্ন শর্তের ভিত্তিতে এলিমেন্ট দেখায়। | | `NgTemplateOutlet` | স্ট্রাকচারাল | টেমপ্লেট রেন্ডার করে। | | `Custom Directive` | কাস্টম | ব্যবহারকারীর প্রয়োজন অনুযায়ী তৈরি করা ডাইরেক্টিভ। | - টেবিল ডিজাইন এবং ডাটা স্ট্রাকচার সম্পর্কে ধারণা থাকলে ডাইরেক্টিভ তৈরি করা সহজ হবে।
উপসংহার
আঙ্গুলার ডাইরেক্টিভ একটি শক্তিশালী বৈশিষ্ট্য, যা ডেভেলপারদের এইচটিএমএল-এর আচরণ পরিবর্তন করতে এবং অ্যাপ্লিকেশনকে আরও গতিশীল করতে সাহায্য করে। বিভিন্ন ধরনের ডাইরেক্টিভ ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের ইউজার ইন্টারফেসকে আরও আকর্ষণীয় এবং ব্যবহারকারী-বান্ধব করতে পারেন। ডাইরেক্টিভ তৈরির নিয়ম এবং ব্যবহারের কৌশলগুলো ভালোভাবে বুঝে আপনি আপনার আঙ্গুলার অ্যাপ্লিকেশন ডেভেলপমেন্টকে আরও উন্নত করতে পারবেন।
আরও জানতে:
- আঙ্গুলার অফিসিয়াল ডকুমেন্টেশন
- কম্পোনেন্ট এবং ডাইরেক্টিভের মধ্যে পার্থক্য
- ডাইরেক্টিভ নিয়ে আরও কিছু টিপস
- আঙ্গুলারে ফর্ম ভ্যালিডেশন
- রাউটিং এবং নেভিগেশন
- স্টেট ম্যানেজমেন্ট
- টেস্টিং কৌশল
- সিকিউরিটি বেস্ট প্র্যাকটিস
- ডিপেন্ডেন্সি ইনজেকশন
- RxJS এবং অবজারভেবল
- টাইপস্ক্রিপ্ট বেসিক
- ফ্রন্ট-এন্ড অপটিমাইজেশন
- ওয়েব পারফরম্যান্স
- অ্যাঙ্গুলার মেটেরিয়াল
- অ্যাঙ্গুলার সিএলআই
- ডেটা বাইন্ডিং
- ইভেন্ট বাইন্ডিং
- পাইপস
- সার্ভিসেস
এখনই ট্রেডিং শুরু করুন
IQ Option-এ নিবন্ধন করুন (সর্বনিম্ন ডিপোজিট $10) Pocket Option-এ অ্যাকাউন্ট খুলুন (সর্বনিম্ন ডিপোজিট $5)
আমাদের সম্প্রদায়ে যোগ দিন
আমাদের টেলিগ্রাম চ্যানেলে যোগ দিন @strategybin এবং পান: ✓ দৈনিক ট্রেডিং সংকেত ✓ একচেটিয়া কৌশলগত বিশ্লেষণ ✓ বাজারের প্রবণতা সম্পর্কে বিজ্ঞপ্তি ✓ নতুনদের জন্য শিক্ষামূলক উপকরণ