Service

Központosított üzleti logikát, adatkezelést és megosztott funkcionalitást nyújt az alkalmazás különböző részei számára.

Service példányosítás

Azt jelenti, hogy az adott service-t elérhetővé tesszük az alkalmazásban, és létrehozunk egy példányt belőle, amelyet injektálhatunk más komponensekbe vagy szolgáltatásokba.

Angularban a service-ek olyan osztályok, amelyek kiszervezett funkciókat biztosítanak az alkalmazás számára. Ezek a funkciók gyakran kapcsolódnak adatok kezeléséhez, kommunikációhoz egy szerverrel vagy bármilyen más logikához, amelyet nem szeretnénk közvetlenül az összetevőkben (components) tárolni.

Az Angular service-ek használatának néhány gyakori példája:

  1. Adatkezelés: Az adatok tárolása, módosítása és lekérdezése.
  2. HTTP kérések: Kommunikáció egy REST API-val az HttpClient modul használatával.
  3. Autentikáció: Felhasználói bejelentkezés és kijelentkezés kezelése.
  4. Logger: Alkalmazás-események naplózása.
  5. Konfiguráció: Globális beállítások tárolása és elérése.
  6. Eseménykezelés: Események központi kezelése és közvetítése az alkalmazáson belül.
  7. Közös funkciók: Olyan funkciók, amelyeket több összetevő is felhasználhat.

A service-k használatának patternje az Angularban:

  • Dekorálás a @Injectable() dekorátorral: Ez lehetővé teszi az Angular számára, hogy az osztályt mint service-t kezelje, és beinjektálja az alkalmazás összetevőibe vagy más service-ekbe.
@Injectable({
  providedIn: 'root'
})
  • Konstruktorban való injektálás: Az Angular Dependency Injection (DI) rendszere lehetővé teszi, hogy a service-t injektáljuk egy összetevő vagy egy másik service konstruktorába.
constructor(private myService: MyService) { }
  • A Singleton pattern használata: A providedIn: 'root' beállítással az Angular a service-t singletonként kezeli, ami azt jelenti, hogy az egész alkalmazásban csak egy példánya lesz.

A service-ek kiszervezése az alkalmazás logikájának modularizálását és újrahasznosítását teszi lehetővé, így az összetevők egyszerűbbek és karbantarthatóbbak maradnak.

Was this page helpful?