What are modules & How to optimize ?
Si notre app est relativement petite on peux tout garder dans notre appModule, mais au fur et a mesure qu'elle grandit il est préferable de separer le code en plusieurs 'feature Module'

Nous allons creer un nouveau module : recipe.module.ts , et transferer nos components Recipe vers ce module.
Attention il faut egalement rajouter les imports de modules @angular dans ce recipe.module! Tout ce qui est utilisé par nos composants doit etre importé, SAUF les services!
BrowserModule doit etre remplacé par commonModule !
@NgModule({
declarations: [
RecipeListComponent,
RecipeItemComponent,
RecipeDetailComponent,
RecipesComponent,
RecipeStartComponent,
RecipeEditComponent
],
imports: [
RouterModule,
CommonModule,
ReactiveFormsModule,
FormsModule
],
exports: [
RecipeListComponent,
RecipeItemComponent,
RecipeDetailComponent,
RecipesComponent,
RecipeStartComponent,
RecipeEditComponent
]
})
Nous pouvons ensuite deplacer notre logique de routing vers un autre routing.module qu'on appellera "recipes-routing.module.ts" :
const routes: Routes = [
{ path: 'recettes', component: RecipesComponent,
canActivate: [AuthGuard],
children: [
{ path: '', component: RecipeStartComponent },
{ path: 'new', component: RecipeEditComponent },
{ path: ':id', component: RecipeDetailComponent, resolve: [RecipeResolverService] },
{ path: ':id/edit', component: RecipeEditComponent, resolve: [RecipeResolverService] }
]},
];
@NgModule ({
// utiliser FORCHILD ici !
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class RecipesRoutingModule {
}
Penser a rajouter notre module fraichement créer dans notre recipes.module.ts dans la section imports!
On peux egalement enlever nos exports depuis notre recipe.module car ils sont utilisés directement dans notre module actuel et on a pas besoin de les utiliser dans le module principal !
exports: [
RecipeListComponent,
RecipeItemComponent,
RecipeDetailComponent,
RecipesComponent,
RecipeStartComponent,
RecipeEditComponent
]
Même chose pour notre shopping-list , on creer notre shopping-list.module et son routing :