[Début de la branche step-4]
Changeons l'architecture du projet en mettant en place un routing :
Copy app
│ app.component.ts
│ app.routing.ts
│ app.module.ts
└───store
└───modules
└───todo-list
│ todo-list.module.ts
│ todo-list.component.ts
| todo-list.routing.ts
└───components
└───all-todos
│ │ all-todos.component.ts
└───select-todo
│ select-todo.component.ts Ci-dessous, une configuration de routing afin de charger notre module TodoListModule en lazy-loading avec le loadChildren .
app.routing.ts
Dans le AppModule , on peut déplacer les dépendances des formulaires vers TodoListModule :
app.module.ts
Migrer tout le contenu du AppComponent vers AllTodosComponent .
Il ne reste que la balise router-outlet :
/app.component.ts
Le fichier du routing pour le module TodoList :
modules/todo-list/todo-list.routing.ts
Et le fichier du module TodoList :
modules/todo-list/todo-list.module.ts
Le TodoListComponent servira juste de lien entre nos deux autres components avec un autre router-outlet :
modules/todo-list/todo-list.component.ts
Le component qui contiendra la liste de todos :
modules/todo-list/components/all-todos/all-todo.component.ts
On remarque que dans la nouvelle architecture, le dossier store/ est très loin de nos composants ce qui crée beaucoup de "../".
Pour y remédier, utilisez des alias via le tsconfig.json :
tsconfig.json
Avec cette configuration, plus besoin de "../" :
modules/todo-list/components/all-todos/all-todo.component.ts
Si votre IDE indique une erreur, redémarrez-le.
Le point refacto est terminé.
Passons à la mise à jour des todos .