Container vs. Presentational Components
Supposons que nous disposons dans notre composant app
, d'une liste bookList
contenant une liste d'instance d'une classe Book
que nous souhaitons afficher.
Laissez bien sûr l'IDE s'occuper des imports via l'auto-complete ou l'auto-import (Alt + Enter chez JetBrains).
Il serait intéressant de déléguer l'affichage de chaque book
au composant book-preview
que nous pourrons réutiliser plus tard dans d'autres contextes.
Dans ce cas, nous séparons les responsabilités entre le composant app
et le composant book-preview
.
Container Component (ou Smart Component)
Le composant app
s'occupe donc de la "business logic" et sélectionne les objets book
à afficher via la propriété bookList
.
Il est donc un "Container Component" qui délègue l'affichage à des "Presentational Components".
Presentational Component (ou Dumb Component)
Le composant book-preview
ne sait pas d'où provient le book
à afficher mais il sait l'afficher.
Il est donc un "Presentational Component" qui est débarrassé de la "business logic".
Article plus détaillé sur le sujet
Interaction entre Composants
Il ne reste plus au composant app qu'à communiquer chaque book
au composant book-preview
associé. Cf. Interaction entre Composants.
Dernière mise à jour