Middle
Angular qanday ishlaydi?
sobes.tech AI
AIdan javob
Angular yagona yagona bitta sahifa ilovalari (SPA) yaratish uchun framework sifatida ishlaydi. Uning asosiy komponentlari va tamoyillari:
- Modullik: Ilovalar modullardan quriladi.
@NgModuleqaysi komponentlar, xizmatlar va boshqa elementlar modulga tegishli ekanligini belgilaydi. - Komponentlar: Angular ilovalarining asosiy qurilish bloklari. Har bir komponent shablondan (HTML), TypeScript sinfidan (mantiq) va uslublardan (CSS) iborat.
Componentdekoratori ularni bog'laydi. - Ma'lumotlarni bog'lash (Data Binding): Angular komponent sinfidagi ma'lumotlar bilan shablondagi ko'rinish o'rtasida bog'lanishni ta'minlaydi. Bir tomonlama (property binding, interpolation) va ikki tomonlama (ngModel) bog'lanishlar mavjud.
- Direktivlar: DOM elementlarining xatti-harakatini yoki ko'rinishini o'zgartiradi. Strukturalik (
*ngIf,*ngFor) yoki atributli (ngClass,ngStyle) bo'lishi mumkin. - Xizmatlar: Bir nechta komponentlar tomonidan foydalaniladigan mantiqni o'z ichiga olgan sinflar. Ma'lumotlarni olish, biznes mantiqini bajarish uchun ishlatiladi.
- Qaramliklarni injektsiya qilish (Dependency Injection): Angular xizmatlarni komponentlarga yoki boshqa xizmatlarga taqdim etadigan mexanizm. Kodni yanada moslashuvchan va test qilish mumkin qiladi.
- Routing: Ilova ichida turli ko'rinishlar (komponentlar) o'rtasida navigatsiya qilish imkonini beradi.
RouterModuleva marshrutlar konfiguratsiyasi yordamida belgilangan. - Komponentning hayot aylanishi (Component Lifecycle): Komponentning yaratilishidan o'limigacha bo'lgan voqealar ketma-ketligi. Angular ma'lum bosqichlarda harakat qilish uchun hooklar (metodlar) taqdim etadi (
ngOnInit,ngOnDestroy). - O'zgarishlarni aniqlash (Change Detection): Ilova ma'lumotlaridagi o'zgarishlarga asoslangan holda ko'rinishni (DOM) yangilashni belgilovchi mexanizm. Angular
NgZoneyordamida asinxron voqealarni kuzatadi va avtomatik o'zgarishlarni aniqlashni ishga tushiradi. - Shablonlar (Templates): Angular bilan bog'langan HTML, direktivalar va ifodalar.
- RxJS: Angular asinxron ma'lumotlar va voqealar oqimlari bilan ishlash uchun RxJS kutubxonasidan faol foydalanadi.
Yuqori darajadagi ish jarayoni:
- Yuklash: Brauzer
index.htmlfaylini yuklaydi. - Boshlash: Ilovaning ildizi odatda
main.tsda boshlanadi. - Bootstrap:
@NgModuleasosiy modul uchun (odatdaAppModule)platform-browseryordamida yuklanadi. - Render qilish: Angular ildizdan boshlab komponentlarni yaratadi va render qiladi.
- Ma'lumotlarni bog'lash: Komponent sinflaridagi ma'lumotlar shablonlarga bog'lanadi.
- O'zgarishlarni aniqlash: Angular ma'lumotlar o'zgarishlarini kuzatadi va ko'rinishni yangilaydi.
- Routing: Ko'rinishlar o'rtasidagi o'tishlar router tomonidan boshqariladi.
// Oddiy komponent misoli
import { Component } from '@angular/core';
@Component({
selector: 'app-greet', // Shablonda ishlatiladigan teg nomi
template: `<p>{{ message }}</p>`, // Komponent shabloni
styles: ['p { rang: blue; }'] // Komponent uslublari
})
export class GreetComponent {
// Komponent mantiqi
message = 'Salom Angulardan!';
}
// DI bilan xizmatdan foydalanish misoli
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root' // Xizmat ildiz injektorida mavjud
})
export class DataService {
getData(): string {
return 'Xizmatdan ma'lumotlar';
}
}
// Xizmatni ishlatadigan komponentda
import { Component, OnInit } from '@angular/core';
import { DataService } from './data.service';
@Component({
selector: 'app-show-data',
template: `<p>{{ serviceData }}</p>`,
})
export class ShowDataComponent implements OnInit {
serviceData: string = '';
constructor(private dataService: DataService) { // Xizmatni injektsiya qilish
}
ngOnInit() {
this.serviceData = this.dataService.getData();
}
}
Angular TypeScript va HTML shablonlarini qurilish jarayonida JavaScriptga kompilyatsiya qiladi (standart AOT kompilyatsiya), bu esa ishlash tezligini oshiradi.