IslomDevIslomDev
Booster
Imtihon
Booster
Imtihon
  • Angular Intervyu Tayyorgarlik
  • JavaScript / TypeScript

    • JavaScript / TypeScript
    • Asoslar (JavaScript)
    • Asinxronlik
    • Prototip va OOP
    • TypeScript
    • Performance
  • Algoritmlash

    • Algoritmlash
    • Murakkablik tahlili
    • Ma'lumot tuzilmalari
    • Qidiruv va Saralash
    • Algoritmik paradigmalar
    • Amaliy masalalar
  • Angular — Boshlang'ich

    • Angular — Boshlang'ich
    • Component
    • Template
    • Change Detection
    • Advanced Component
  • Angular — Service va DI

    • Angular — Service va DI
    • Service asoslari
    • HTTP
    • Hierarchical DI
    • Advanced DI
    • State management (service)
  • Angular — Versiyalar

    • Angular — Versiyalar
    • Angular 12–13
    • Angular 14
    • Angular 15
    • Angular 16
    • Angular 17
    • Angular 18+
  • Angular — Directive

    • Angular — Directive
    • Built-in Directives
    • Custom Attribute Directive
    • Custom Structural Directive
    • Advanced
  • Angular — RxJS

    • Angular — RxJS
    • Observable asoslari
    • Asosiy operatorlar
    • Higher-order operatorlar
    • Combination operatorlar
    • Subject turlari
    • Xato va xotira
    • Advanced
  • Angular — Pipe

    • Angular — Pipe
    • Built-in Pipes
    • Custom Pipe
    • Performance
  • Angular — Forms

    • Angular — Forms
    • Template-driven Forms
    • Reactive Forms
    • Validators
    • Advanced
  • Angular — NgModule

    • Angular — NgModule
    • NgModule asoslari
    • Module arxitekturasi
    • Lazy Loading
    • Standalone vs NgModule
  • Angular — Sintaksis va Clean Code

    • Angular — Sintaksis va Clean Code
    • Template sintaksisi
    • Angular 17+ yangi sintaksis
    • Komponent arxitekturasi
    • Performance pattern'lar
    • SOLID va Clean Code
    • Testing

Angular 18+

Daraja:

Angular 18 va undan keyingi versiyalar — zoneless change detection, signal-based component RFC va migration strategiyasi. Angular'ning kelajak yo'nalishi shu yerda shakllanmoqda.

Zoneless — provideExperimentalZonelessChangeDetection()

Senior

Nima bu?

Zoneless — Zone.js'siz change detection. Angular 18 da provideExperimentalZonelessChangeDetection() experimental. Signals, async pipe va manual ChangeDetectorRef.markForCheck() o'rniga granular update. Bundle kichikroq (Zone.js ~13KB), performance yaxshi, lekin third-party library'lar Zone'ga bog'liq bo'lishi mumkin.

Kod misoli

import { bootstrapApplication } from '@angular/platform-browser';
import { provideExperimentalZonelessChangeDetection } from '@angular/core';

bootstrapApplication(AppComponent, {
  providers: [
    provideRouter(routes),
    provideHttpClient(),
    provideExperimentalZonelessChangeDetection(), // Zone.js o'chiriladi
  ],
});
// Zoneless'da ishlashi uchun — signal yoki async pipe
@Component({
  template: `
    <p>{{ count() }}</p>
    <p>{{ data$ | async }}</p>
  `,
})
export class ZonelessSafeComponent {
  count = signal(0);

  data$ = this.http.get<Data[]>('/api/data');

  increment() {
    this.count.update((v) => v + 1); // signal → avtomatik update
  }

  // setTimeout ichida oddiy property o'zgarishi update QILMAYDI
  // this.value = 1 — Zone yo'q, CD trigger yo'q
}

Imtihonda

  • Zone.js nima qiladi? Nima uchun olib tashlanmoqda?
  • Zoneless'da setTimeout ichida property o'zgartirish ishlaydimi?

Yodlash uchun

Zoneless = Signal/async pipe kerak. Zone = avtomatik CD trigger.

Production'da hali experimental — Signals va async pipe to'liq migratsiya qiling.

Signal-based component (RFC)

Senior

Nima bu?

Angular 18+ Signal-based Components RFC — component state to'liq signal'larda: input(), model(), viewChild(), internal signal(). @Input, @Output, class field'lar asta-sekin deprecated yo'l. Change detection soddalashtiriladi, zoneless bilan tabiiy integratsiya. Hozircha RFC/preview bosqichida.

Kod misoli

// Zamonaviy signal-based component (17.1+ / 18 pattern)
@Component({
  selector: 'app-user-list',
  standalone: true,
  imports: [UserCardComponent],
  template: `
    @for (user of filteredUsers(); track user.id) {
      <app-user-card
        [user]="user"
        [(selected)]="selectedIds"
      />
    }
  `,
})
export class UserListComponent {
  users = input.required<User[]>();
  filter = input('');

  selectedIds = model<number[]>([]);

  filteredUsers = computed(() =>
    this.users().filter((u) =>
      u.name.toLowerCase().includes(this.filter().toLowerCase())
    )
  );
}

Imtihonda

  • Signal-based component afzalliklari?
  • BehaviorSubject store vs signal store?

Yodlash uchun

Signal component = input/model/computed. Zoneless kelajak. RFC — hali evolyutsiya.

Migration strategiyasi — ng update, schematics

MiddleSenior

Nima bu?

Angular migration — ng update @angular/core @angular/cli major versiyaga yangilash. Schematics avtomatik kod o'zgartirish: control flow, standalone, inject(), signal input. angular.json va breaking changes guide. Bosqichma-bosqich: bir major versiya, test, keyingisi.

Kod misoli

# Major versiya yangilash
ng update @angular/core@17 @angular/cli@17

# Control flow migration schematic
ng generate @angular/core:control-flow

# Standalone migration
ng generate @angular/core:standalone

# Inject migration (constructor → inject)
ng generate @angular/core:inject

# Typed forms migration
ng generate @angular/core:typed-forms
// angular.json — update qo'llanmasi
// 1. Node LTS versiyasini tekshirish
// 2. ng update
// 3. Breaking changes: https://angular.dev/update-guide
// 4. Test suite ishga tushirish
// 5. Deprecated API'larni almashtirish

Imtihonda

  • ng update qanday ishlaydi?
  • Schematic va qo'lda refactor farqi?
  • 14 → 17 migration qanday bosqichlarda?

Yodlash uchun

ng update = CLI yangilash + schematics. Bir major = bir qadam. update-guide.angular.dev.

Production: feature branch, CI green, staging test, keyin production deploy. 14→15→16→17 ketma-ket xavfsizroq.
Prev
Angular 17