Angular'da TakeUntilDestroyed Operatörünü Tanıma

Apr 06 2023
Angular v16, @angular/core/rxjs-interop girişinde üç yeni operatör içeren yeni bir özellik sunar: fromSignal, fromObservable ve takeUntilDestroyed. Bu operatörler, Açısal uygulamalarda RxJS'nin işlevselliğini geliştirmek için tasarlanmıştır.

Angular v16,@angular/core/rxjs-interop girişte üç yeni işleç içeren yeni bir özellik sunar : fromSignal, fromObservable, ve takeUntilDestroyed. Bu operatörler, Açısal uygulamalarda RxJS'nin işlevselliğini geliştirmek için tasarlanmıştır.

Operatör takeUntilDestroyed, çağrı içeriği (bileşen, yönerge, hizmet veya boru olabilir) yok edildiğinde geliştiricilerin bir gözlemlenebiliri otomatik olarak tamamlamasına izin verir. Bu, bellek sızıntılarını önlemeye yardımcı olur ve kaynakların düzgün bir şekilde serbest bırakılmasını sağlar.

Operatörü kullanmak için takeUntilDestroyedönce onu girişten içe aktarmanız gerekir @angular/core/rxjs-interop.

İçe aktarıldıktan sonra, onu gözlemlenebilirinize zincirleyerek kullanabilirsiniz. Örneğin:

import { takeUntilDestroyed } from '@angular/core/rxjs-interop';

@Component({
  ...
})
export default class HomeComponent {

  constructor() {
    interval(1000).pipe(takeUntilDestroyed()).subscribe(console.log);
  }
}

Operatörü başka yerlerde kullanmak istiyorsanız, bir DestroyRefsağlayıcıyı açıkça iletebilirsiniz. İşte bir örnek:

import { takeUntilDestroyed } from '@angular/core/rxjs-interop';

@Component({
  ...
})
export default class HomeComponent {
  private destroyRef = inject(DestroyRef);

  ngOnInit() {
    interval(1000).pipe(
      takeUntilDestroyed(this.destroyRef)
    ).subscribe(console.log);
  }
}