Introduktion til Moduler i Angular
Forestil dig, at du bygger en app. I starten er det kun en enkelt fil — som main.ts
. Men efterhånden tilføjer du mere: komponenter, services, styles, logik, datahåndtering, autentificering og så videre.
Før eller siden begynder det at blive rodet — det er svært at se, hvad der bruges hvor, eller hvordan det hele hænger sammen.
Det er her, modularitet bliver din bedste ven.
Hvad er et modul i Angular?
Et modul er en måde at gruppere relaterede dele af din app i separate, håndterbare blokke, som er nemme at vedligeholde, genbruge og teste.
Tænk på et modul som en boks, hvor du opbevarer alt, der relaterer sig til en bestemt funktion. For eksempel kan alt brugerrelateret samles i et UserModule
.
I Angular er et modul blot en klasse markeret med @NgModule
-dekorationen, som dette:
app-component.ts
Her er, hvad de enkelte dele gør:
-
declarations
– angiver de komponenter, direktiver og pipes, der tilhører dette modul; -
imports
– importerer andre moduler, som dette modul er afhængigt af (for eksempelBrowserModule
for DOM-adgang); -
providers
– erklærer services (til dependency injection), der er tilgængelige i dette modul; -
bootstrap
– definerer den hovedkomponent, der skal indlæses, når appen starter (typiskAppComponent
).
Grundlæggende definerer et modul, hvilke afhængigheder det har, hvad det stiller til rådighed for andre moduler, og så videre.
Alle komponenter, der interagerer med dette modul, kan benytte de services og andre ressourcer, det stiller til rådighed.
Hvorfor vi ikke bruger moduler lige nu
Fra og med Angular 14 findes der et nyt alternativ — standalone-komponenter.
Disse giver dig mulighed for at oprette og bruge en komponent uden at placere den i et modul overhovedet. Vi har faktisk brugt dem gennem hele vores projekt, og de ser sådan ud:
task-component.ts
Dette er en standalone-komponent — hvilket betyder, at den ikke behøver at blive angivet i nogen NgModule under declarations. I stedet tilføjer du alt, hvad den har brug for (såsom direktiver, pipes eller andre moduler) direkte via imports-egenskaben inde i selve komponenten.
Dette gør din projekts struktur lettere og mere fleksibel — særligt nyttigt for små apps eller isolerede funktionsblokke.
Vi vil dykke dybere ned i standalone-komponenter senere i dette afsnit.
Selvom nyere Angular-projekter ikke kræver moduler, vil du stadig ofte støde på dem:
-
Ældre virksomhedsapps er udelukkende bygget med moduler;
-
Mange vejledninger, dokumentationer og eksempler er stadig skrevet med
NgModule
; -
Nogle tredjepartsbiblioteker og UI-rammer anvender stadig modulbaseret tilgang.
Derfor vil vi bruge lidt tid på at lære, hvordan NgModule
fungerer — så du kan læse og vedligeholde ældre kodebaser med sikkerhed.
1. Hvad er hovedformålet med et modul i Angular?
2. Hvad indgår typisk i @NgModule
dekoratøren?
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 3.13
Introduktion til Moduler i Angular
Stryg for at vise menuen
Forestil dig, at du bygger en app. I starten er det kun en enkelt fil — som main.ts
. Men efterhånden tilføjer du mere: komponenter, services, styles, logik, datahåndtering, autentificering og så videre.
Før eller siden begynder det at blive rodet — det er svært at se, hvad der bruges hvor, eller hvordan det hele hænger sammen.
Det er her, modularitet bliver din bedste ven.
Hvad er et modul i Angular?
Et modul er en måde at gruppere relaterede dele af din app i separate, håndterbare blokke, som er nemme at vedligeholde, genbruge og teste.
Tænk på et modul som en boks, hvor du opbevarer alt, der relaterer sig til en bestemt funktion. For eksempel kan alt brugerrelateret samles i et UserModule
.
I Angular er et modul blot en klasse markeret med @NgModule
-dekorationen, som dette:
app-component.ts
Her er, hvad de enkelte dele gør:
-
declarations
– angiver de komponenter, direktiver og pipes, der tilhører dette modul; -
imports
– importerer andre moduler, som dette modul er afhængigt af (for eksempelBrowserModule
for DOM-adgang); -
providers
– erklærer services (til dependency injection), der er tilgængelige i dette modul; -
bootstrap
– definerer den hovedkomponent, der skal indlæses, når appen starter (typiskAppComponent
).
Grundlæggende definerer et modul, hvilke afhængigheder det har, hvad det stiller til rådighed for andre moduler, og så videre.
Alle komponenter, der interagerer med dette modul, kan benytte de services og andre ressourcer, det stiller til rådighed.
Hvorfor vi ikke bruger moduler lige nu
Fra og med Angular 14 findes der et nyt alternativ — standalone-komponenter.
Disse giver dig mulighed for at oprette og bruge en komponent uden at placere den i et modul overhovedet. Vi har faktisk brugt dem gennem hele vores projekt, og de ser sådan ud:
task-component.ts
Dette er en standalone-komponent — hvilket betyder, at den ikke behøver at blive angivet i nogen NgModule under declarations. I stedet tilføjer du alt, hvad den har brug for (såsom direktiver, pipes eller andre moduler) direkte via imports-egenskaben inde i selve komponenten.
Dette gør din projekts struktur lettere og mere fleksibel — særligt nyttigt for små apps eller isolerede funktionsblokke.
Vi vil dykke dybere ned i standalone-komponenter senere i dette afsnit.
Selvom nyere Angular-projekter ikke kræver moduler, vil du stadig ofte støde på dem:
-
Ældre virksomhedsapps er udelukkende bygget med moduler;
-
Mange vejledninger, dokumentationer og eksempler er stadig skrevet med
NgModule
; -
Nogle tredjepartsbiblioteker og UI-rammer anvender stadig modulbaseret tilgang.
Derfor vil vi bruge lidt tid på at lære, hvordan NgModule
fungerer — så du kan læse og vedligeholde ældre kodebaser med sikkerhed.
1. Hvad er hovedformålet med et modul i Angular?
2. Hvad indgår typisk i @NgModule
dekoratøren?
Tak for dine kommentarer!