Un peu de refacto

[Début de la branche step-4]

Changeons l'architecture du projet en mettant en place un routing :

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

@Alias

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.

Last updated

Was this helpful?