Açısal Sinyaller — Untrack İşlevini Kullanarak Gereksiz Bağımlılıkları Önleme

Apr 28 2023
Bir sinyal değeri değiştiğinde, buna bağlı herhangi bir hesaplanmış() veya efekt() yeniden değerlendirilecektir. Buna izleme denir.

Bir sinyal değeri değiştiğinde, buna bağlı olan herhangi computed()biri effect()yeniden değerlendirilecektir. Buna izleme denir. Ancak bazen bir sinyal değerini bağımlılık yaratmadan yani değeri değiştiğinde reaktif fonksiyonu tetiklemeden okumak isteriz. untrackBu gibi durumlarda Angular tarafından sağlanan işlevi kullanabiliriz .

İki sinyalimizin olduğu ave bdeğerlerini şu şekilde günlüğe kaydetmek istediğimiz bir örneği ele alalım effect:

const a = signal(0);
const b = signal(1);

effect(() => {
  console.log(a(), b());
})

import { untrack } from '@angular/core';

const a = signal(0);
const b = signal(1);

effect(() => {
  console.log(a(), untrack(() => b()));
})

const a = signal(0);
const b = signal(1);

effect(() => {
  console.log(a(), untrack(b));
})

effect(() => {
  // ...read signals...
  const a = a();

  untracked(() => {
    this.someMethodThatReadsSignals(a);
  });
})

Sonuç olarak, untrackişlev, sinyal okuma performansını iyileştirmek ve gereksiz bağımlılıkları önlemek için Açısal'da yararlı bir araçtır.

Angular ve JS hakkında daha fazlasını okumak için Medium veya Twitter'da beni takip edin !