Kommunikáció

Egyszerű adattárolás:

Egy service tartalmazhat változókat, amelyekre több komponensnek is szüksége lehet. Ez lehetővé teszi az adatok egyszerű tárolását és elérését.

@Injectable({
  providedIn: 'root'
})
export class DataService {
  data: any;
}

BehaviorSubject és Observable használata:

Az RxJS könyvtárnak köszönhetően egy service használhat BehaviorSubject-et, hogy adatokat közvetítsen, és az ebből származó Observable-t használva az összetevők tudják figyelni az adatváltozásokat.

@Injectable({
  providedIn: 'root'
})
export class DataService {
  private dataSubject = new BehaviorSubject<any>(null);
  data$ = this.dataSubject.asObservable();

  setData(data: any): void {
    this.dataSubject.next(data);
  }
}

Egy komponensben:

constructor(private dataService: DataService) {
  this.dataService.data$.subscribe(data => {
    // itt dolgozd fel az adatot
  });
}

Események közvetítése:

Ha egy komponensnek értesítést kell küldenie egy másik komponens számára, ez szintén elérhető egy service segítségével.

@Injectable({
  providedIn: 'root'
})
export class EventService {
  private eventSubject = new Subject<any>();
  event$ = this.eventSubject.asObservable();

  triggerEvent(data: any): void {
    this.eventSubject.next(data);
  }
}
  1. Ebben a példában az EventService-en keresztül egy komponens értesítheti a többi komponenst egy eseménnyel.

Az előnye ennek a megközelítésnek, hogy könnyen lehet tesztelni az alkalmazást, és az alkalmazás logikája jól szeparált és moduláris marad. Emellett a service-ek használata lehetővé teszi az adatok és az események központi kezelését, így az alkalmazás egészében következetes állapotot és viselkedést biztosíthatunk.

Was this page helpful?