2016-04-06 39 views
7

Sto costruendo un'applicazione React + Redux, vengo al punto in cui sono considerando di utilizzare un contenitore in un altro contenitore. Mi chiedo se questo è un buon approccio, vale a dire. è una buona pratica o dovremmo seguire rigorosamente la regola del 1 contenitore con diversi componenti?reagire redux: composizione contenitori

+0

Perché hai bisogno di un contenitore all'interno un container? –

+0

La domanda è semplicemente correlata a Encapsulation, che è un concetto di programmazione super importante. Sapere come usare i contenitori all'interno dei contenitori in Redux consente ai programmatori di scrivere applicazioni che si adattano e sono composte da componenti veramente riutilizzabili. Inoltre, questo è l'unico modo per capire come usare Redux senza setState() di React. –

risposta

15

Permettetemi di citare Dan Abramov's article sui componenti presentational- e Container:

Quando si nota che alcuni componenti non usano gli oggetti di scena che ricevono, ma semplicemente li inoltrano verso il basso e si deve ricablare tutti quei componenti intermedi ogni volta che i bambini hanno bisogno di più dati, è un buon momento per introdurre alcuni componenti del contenitore. In questo modo è possibile ottenere i dati e il comportamento puntato sui componenti foglia senza appesantire i componenti non correlati nel mezzo dell'albero.

... il che significa che è perfettamente necessario avere un componente contenitore all'interno di un altro componente contenitore se ne senti la necessità.

1

Non è facile trovare quale componente deve rimanere "stupido" e quale componente deve essere a conoscenza dell'applicazione e diventare un contenitore. Non penso che sia un problema/anti-pattern utilizzare un contenitore in un altro. Se una parte della tua applicazione viene utilizzata su pagine diverse può essere un contenitore, essere connesso e utilizzare in diverse pagine/contenitori, Basta essere consapevoli: questo "componente contenitore" sarà specifico per questa applicazione

Problemi correlati