da2k / curso-reactjs-ninja

916 stars 323 forks source link

[m01] Estrutura githubapp #10

Closed rodrigowpl closed 8 years ago

rodrigowpl commented 8 years ago

@fdaciuk

Em relação a estrutura criada no githubapp, por favor me corrija se eu estiver errado..

Criamos um componente container que é nosso AppContent, o único componente statefull da nossa aplicação, certo?!

Seguindo essa estrutura se eu fosse criar um aplicativo maior eu poderia dividir dessa forma:

src
    app.js
    index.js
    menu1
        components
        AppContainer.js
    menu2
        components
        AppContainer.js

O que eu quis dizer: Em um sistema maior eu vou ter vários containers, cada menu (ou aba) seria um container e todos esses containers ficaram dentro de um container principal que é o que seria renderizado no app.js, dessa forma eu teria o controle centralizado do estado de cada parte do sistema..

Não sei se fui claro, mas é isso ai?

fdaciuk commented 8 years ago

Isso mesmo, essa é uma estrutura perfeitamente válida!

Você ainda poderia separar em outros diretórios como components e containers (ou pages, ou tabs), ou algo do tipo, dependendo da sua aplicação =)

O importante é tentar isolar ao máximo o estado da aplicação, para reduzir a complexidade e diminuir os bugs que porventura podem aparecer!

Usando o máximo de componentes stateless, você consegue testá-los de forma fácil, garantindo que eles funcionam como deveriam, e usa os containers somente para o gerenciamento de estado da aplicação =)

Só pra vc saber: no módulo 2 vamos ver vários exemplos disso =)

rodrigowpl commented 8 years ago

Massa! Essa estrutura que citei é como se fosse separar por entidades, mas se a aplicação não for tão grande, agrupar por pages e components como você citou é uma boa. Porém a estrutura que eu citei acredito que seja mais indicado se sua aplicação for maior, porque se for muito grande somente isolado dessa forma ficaria um pouco ruim a manutenção, concorda? :)

Valeu o feedback!

fdaciuk commented 8 years ago

Exato! A ideia de ter pages é para colocar somente os container components e os componentes específicos para aquela página mesmo.. os que são reutilizáveis ficariam no diretório components =)

rodrigowpl commented 8 years ago

Show! Valeu!