Çfarë është programimi reaktiv me RxJS?
RxJS (Reactive Extensions for JavaScript) është një bibliotekë për programim reaktiv që përdor Observable për të menaxhuar rrjedha asinkrone ngjarjesh. Në Angular është e integruar natyrshëm: çdo thirrje HttpClient, çdo FormControl.valueChanges, çdo event i Router është një Observable.
Fuqia e vërtetë e RxJS qëndron te operatorët: funksione që transformojnë, filtrojnë dhe kombinojnë të dhënat. Njohja e tyre bën diferencën mes një aplikacioni të mirë dhe një kodi të ngatërruar.
1. map — Transformimi i të dhënave
Analogji: si Array.map(), por mbi një stream që vazhdon në kohë.
2. filter — Filtrimi i eventeve
Lejon vetëm vlerat që plotësojnë një kusht.
3. tap — Efekte anësore
Përdoret për logging dhe UI pa ndryshuar të dhënat.
4. debounceTime + distinctUntilChanged
Optimizon kërkimet duke reduktuar thirrjet e panevojshme.
5. switchMap
Anulon kërkesat e mëparshme kur vjen një e re.
6. mergeMap
Ekzekuton të gjitha kërkesat paralelisht.
7. concatMap
Ekzekuton kërkesat një nga një në rend.
8. forkJoin
Pret përfundimin e të gjitha kërkesave.
9. combineLatest
Kombinon disa burime dhe rifreskohet sa herë ndryshon njëri.
10. takeUntil
Parandalon memory leak duke mbyllur subscription-et.
11. catchError
Menaxhon gabimet dhe lejon fallback.
12. shareReplay
Cache dhe ndarje e stream-eve mes komponentëve.
Përmbledhje
| Operatori | Përdoret kur... | Shembull |
|---|---|---|
map | Transformim i të dhënave | API response |
filter | Filtrim | Evente |
switchMap | Vetëm i fundit ka rëndësi | Search |
mergeMap | Paralel | Upload |
concatMap | Në rend | Save |
Zotërimi i këtyre operatorëve do të thotë kod më i pastër dhe më efikas në Angular.