கட்டமைப்பு டைரக்டிவ்கள் மைக்ரோ-தொடரியல் என்றால் என்ன?
* என்பது அடிப்படை <ng-template> ஆக விரிவடையும் குறுக்குவழி.
சூழல் மாறிகளை வழங்குகிறது (எ.கா., index as i, else).
Angular *ngIf, *ngFor, போன்றவற்றை இந்த தொடரியலைப் பயன்படுத்தி மீண்டும் எழுதுகிறது.
* குறுக்குவழி
மனிதர்-படிக்கக்கூடிய குறுக்குவழி
Angular மாற்றம்
Angular உள்நாட்டில் மாற்றுகிறது
நிகழ்நிலை DOM
நிலையின் அடிப்படையில் காட்டப்படுகிறது/மறைக்கப்படுகிறது
முக்கிய குறிப்பு:
Angular 17+ இல், புதிய கட்டுப்பாட்டு ஓட்ட தொடரியலை விரும்புக (@if, @for, @switch).
*ngIf/*ngFor க்கான மைக்ரோ-தொடரியல் இருக்கும் குறியீட்டுக்கு ஆதரவளிக்கப்படுகிறது. கட்டுப்பாட்டு ஓட்டம் பகுதியைப் பார்க்கவும்.
எப்போது மைக்ரோ-தொடரியலைப் பயன்படுத்துவது
கட்டமைப்பு டைரக்டிவ்கள்
நிலையின் அடிப்படையில் DOM ஐச் சேர்க்க/நீக்க
பட்டியல்களை மீண்டும் செய்ய
*ngFor உடன் சுருக்கமாக மீண்டும் செய்ய
வாசிப்புத்தன்மை
வாசிப்புத்தன்மைக்காக குறுக்குவழியைப் பயன்படுத்தவும்; தேவைப்படும் போது வெளிப்படையான <ng-template> ஐப் பயன்படுத்தவும்
சிறந்த நடைமுறை:
புதிய திட்டங்களுக்கு Angular 17+ இல் புதிய கட்டுப்பாட்டு ஓட்ட தொடரியலைப் பயன்படுத்தவும் (@if, @for). இருக்கும் குறியீட்டைப் பராமரிக்க * மைக்ரோ-தொடரியலைப் பயன்படுத்தவும்.
அடிப்படை எடுத்துக்காட்டு
கட்டமைப்பு டைரக்டிவ்களை விரிவாக்கவும் மற்றும் சூழல் மாறிகளை வெளிப்படுத்த * மைக்ரோ-தொடரியலைப் பயன்படுத்தவும்:
*ngIf உடன் நிபந்தனை ரெண்டரிங்
<ng-template #other>Not OK</ng-template>
*ngIf="ok; else other": ok உண்மையாக இருக்கும் போது தொகுதியை ரெண்டர் செய்கிறது; இல்லையெனில் #other டெம்ப்ளேட்டை ரெண்டர் செய்கிறது.
*ngFor உடன் மீண்டும் செய்தல்
{{ i }} {{ item }}
</li>
*ngFor="...; index as i": items மீது சுழற்சி செய்கிறது மற்றும் பூஜ்யம்-அடிப்படையிலான குறியீட்டை i ஆக வெளிப்படுத்துகிறது.
* குறுக்குவழி:
* குறுக்குவழி: Angular *... ஐ அடிப்படை <ng-template> ஆக மீண்டும் எழுதுகிறது.
*ngIf மற்றும் *ngFor க்கான மைக்ரோ-தொடரியல் (index as i, else), மேலும் எடுத்துக்காட்டுகளுக்கு நிபந்தனை ரெண்டரிங் மற்றும் பட்டியல்கள் பகுதிகளைப் பார்க்கவும்.
உரையாடல் எடுத்துக்காட்டு
நிபந்தனையாக ரெண்டர் செய்ய அல்லது மீண்டும் செய்ய *ngIf மற்றும் *ngFor உடன் மைக்ரோ-தொடரியலைப் பயன்படுத்தவும்:
எடுத்துக்காட்டு:
உங்கள் சொந்த Angular சேவையகத்தைப் பெறுங்கள்
main.ts
import { bootstrapApplication } from '@angular/platform-browser';
import { Component } from '@angular/core';
import { CommonModule } from '@angular/common';
@Component({
selector: 'app-root',
standalone: true,
imports: [CommonModule],
template: `
OK
Not OK
- {{ i }} - {{ item }}
`
})
export class App {
ok = true;
items = ['A','B','C'];
}
bootstrapApplication(App);
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Angular App</title>
</head>
<body>
<app-root></app-root>
</body>
</html>
நேரடி டெமோ:
கட்டமைப்பு டைரக்டிவ்கள் மைக்ரோ-தொடரியல் டெமோ
*ngIf முடிவு: OK
*ngFor பட்டியல்:
- 0 - A
- 1 - B
- 2 - C
சூழல் மாறிகள்: index as i (i = 0,1,2)
எடுத்துக்காட்டு விளக்கம்
* குறுக்குவழி
*ngIf மற்றும் *ngFor என்பது Angular அடிப்படை <ng-template> ஆக மீண்டும் எழுதும் குறுக்குவழி.
*ngIf="ok; else other"
ok உண்மையாக இருக்கும் போது தொகுதியை ரெண்டர் செய்கிறது; இல்லையெனில் #other மூலம் குறிப்பிடப்பட்ட டெம்ப்ளேட்டை ரெண்டர் செய்கிறது.
*ngFor="let item of items; index as i"
பட்டியல் items மீது மீண்டும் செய்கிறது; item தற்போதைய உறுப்பு மற்றும் i பூஜ்யம்-அடிப்படையிலான குறியீடு.
தொடரியல் பரிணாமம்:
Angular 17 புதிய கட்டுப்பாட்டு ஓட்ட தொடரியலை அறிமுகப்படுத்தியது (@if, @for, @switch) இது * மைக்ரோ-தொடரியலை விட மேம்பட்டது. புதிய திட்டங்களுக்கு புதிய தொடரியலைப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது, ஆனால் இருக்கும் குறியீட்டுக்கு * மைக்ரோ-தொடரியல் இன்னும் முழுமையாக ஆதரிக்கப்படுகிறது.
பயிற்சி
உங்கள் அறிவைச் சோதிக்க இந்தப் பயிற்சியை முயற்சிக்கவும்:
பட்டியல்களை ரெண்டர் செய்ய எந்த டைரக்டிவ் மைக்ரோ-தொடரியலை (நட்சத்திர வடிவம்) பயன்படுத்துகிறது?
கட்டமைப்பு vs பண்பு டைரக்டிவ்கள்:
Angular இரண்டு வகையான டைரக்டிவ்களைக் கொண்டுள்ளது: கட்டமைப்பு டைரக்டிவ்கள் (*ngIf, *ngFor) DOM கட்டமைப்பை மாற்றுகின்றன, மற்றும் பண்பு டைரக்டிவ்கள் ([ngClass], [ngStyle]) உறுப்பு பண்புகளை மாற்றுகின்றன. கட்டமைப்பு டைரக்டிவ்கள் மட்டுமே * மைக்ரோ-தொடரியலைப் பயன்படுத்துகின்றன.