I credo la maggior parte delle persone concorda sul fatto che l'uso dei componenti del contenitore è una buona pratica - descritta in questo popolare post: link
L'ho comprato, tuttavia, penso che lo stavo facendo un po 'troppo rigorosamente.
Un commento in quell'articolo indica che non usare i componenti del contenitore ostacola la riusabilità di quei componenti:
CommentList can’t be reused unless under the exact same circumstances.
Sebbene la riusabilità sia ottima, ci saranno sempre alcuni componenti che non sono destinati ad essere riutilizzati, hanno un lavoro molto specifico che è unico per un determinato aspetto della tua app. Quindi se non ho intenzione di riutilizzare questo componente, c'è qualche danno nel recuperare i dati dall'interno del componente che lo esegue?
Caso d'uso:
Mi sono trovato solo in questa situazione perché sto generando dinamicamente una manciata di componenti che condividono determinati comportamenti (ad esempio il salvataggio delle modifiche dell'utente agli input nel componente), ma altrimenti richiedono dati di archivio diversi. Quindi eseguo il rendering dei miei componenti tramite un loop con questo componente condiviso come genitore, tuttavia non voglio dover passare i dati del negozio in ognuno di questi componenti quando solo alcuni ne hanno bisogno.
Ecco la descrizione:
Container Component -> Shared Component -> Unique Components
Dove il componente contenitore in questo momento sta recuperando tutti i dati del negozio, ogni componente univoco viene generato da un loop all'interno del componente contenitore incluso nel componente condiviso come genitore. Con questa configurazione corrente, ho bisogno di passare tutti i dati a ogni componente, tramite il componente condiviso, in modo che possa farlo ai miei componenti univoci