Skip to main content

Angular Signals edustavat eri lähestymistapaa reaktiivisuuteen – ne keskittyvät nykyiseen tilaan ja eksplisiittisiin riippuvuuksiin tapahtumien sijaan. Merkittävä muutos lomakkeiden ja tilan mallintamiseen.

Angular Signals on herättänyt sekä innostusta että hämmennystä kehittäjien keskuudessa. Monet virheellisesti tulkitsevat ne "yksinkertaisiksi observableiksi" tai yrittävät soveltaa niihin RxJS-malleja. Signaalit eivät kuitenkaan ole ensisijaisesti tapahtumajärjestelmä, eivätkä ne ole suunniteltu korvaamaan RxJS:ää.

Signaalit edustavat eri tapaa mallintaa sovelluksen käyttäytymistä – ne keskittyvät nykyiseen tilaan ja eksplisiittisiin riippuvuuksiin tapahtumasekvenssien sijaan. Kun signaali muuttuu, Angular ei lähetä tapahtumaa vaan merkitsee riippuvaiset laskennat vanhentuneiksi ja laskee ne uudelleen seuraavan lukukerran yhteydessä. Tämä pull-perusteinen malli sopii luontevasti tila-painotteisiin ongelmiin kuten lomakkeiden mallintamiseen.

Angular Signal Forms API havainnollistaa tätä lähestymistapaa käytännössä. Sen sijaan että lomakkeita mallinnettaisiin kontrolli-puina jotka emittoivat tapahtumia, Signal Forms aloittaa signaali-tuetusta mallista ja kerrostaa lomakkeen käyttäytymisen validoinnin, interaktio-tilan ja lähetyksen sen päälle. Validointisäännöt ovat deklaratiivisia ja Angular arvioi ne automaattisesti uudelleen kun taustalla olevat arvot muuttuvat.

Signaalit ja RxJS palvelevat eri tarkoituksia – Signaalit tilalle ja johdannaisille, RxJS koordinaatiolle ja sivuvaikutuksille. Kun kutakin käytetään siihen mihin se sopii parhaiten, tuloksena on selkeämpi ja ylläpidettävämpi arkkitehtuuri. Signaalit vähentävät kognitiivista kuormaa erityisesti sovelluksen osissa joissa käyttäytymistä dominoi tila ajankohdan sijaan.

Tärkeimmät pointit

  • Signaalit edustavat pull-perusteista reaktiivisuutta, eivät tapahtumajärjestelmää
  • Keskittyvät nykyiseen tilaan ja riippuvuussuhteisiin tapahtumasekvenssien sijaan
  • Angular Signal Forms API mallintaa lomakkeet signaali-tuetusta tilasta lähtien
  • Validointisäännöt deklaratiivisia – Angular arvioi automaattisesti uudelleen
  • Ei korvaa RxJS:ää – eri työkalut eri ongelmiin
  • Vähentää kognitiivista kuormaa tila-painotteisissa sovelluksissa
  • Mahdollistaa deterministisen tilan johtamisen ilman tilausjärjestystä

Lähde: infoworld — alkuperäinen artikkeli julkaistu 4.6.2026