Eu estou apenas começando a aprender sobre a Arquitetura Redux (com Angular 2).
Eu entendi corretamente que tudo entra em 1 Objeto, que define o estado de todo o aplicativo?
Em caso afirmativo, digamos que eu queira criar um aplicativo de tamanho médio como um painel de administração e ainda não conheço todas as propriedades / estados. A prática do trabalho seria atualizar o initialState e sua interface em movimento?
Respostas:
1 para resposta № 1Eu entendi corretamente que tudo entra em 1 Objeto, que define o estado de todo o aplicativo?
Isso não é inteiramente correto. - Isto é tecnicamente possível, mas não é aconselhável.
Os dados geralmente são agregados em partes menores com dependências semânticas reducers
- se você olhar para o ngrx-example-app - você tem o seguinte reducers
(você pode chamá-los "sub-estados"):
- livros -> contém tudo relacionado ao livro
- coleções -> contém tudo relacionado à coleção de livros
- layout -> tudo relacionado ao layout (se o painel lateral estiver aberto ou fechado)
- pesquisa -> tudo relacionado à pesquisa
Agora, tecnicamente todo reducer
é colocado no objeto de loja global (apenas no caso de você quis dizer isso por "1 Objeto "), mas isso é apenas por conveniência, um reducer
tem que ser construído como um "componente autônomo" sem o conhecimento de outros reducers
e estados.
Então, em resumo: Use vários reducers
, não um grande problema.
[...] digo que quero construir um aplicativo de tamanho médio como um painel de administração e não conheço todas as propriedades / estados ainda. A prática do trabalho seria atualizar o initialState e sua interface em movimento?
Isso depende do conteúdo de suas aplicações, típico reducers
para um painel de administração pode ser:
- Comercial -> dados do usuário
- configuração -> dados relacionados com configurações gerais
- Apoio, suporte -> por exemplo para solicitações de suporte de usuários
- layout -> coisas relacionadas ao layout
Agora isso é só 1 maneira de definir seus redutores, há muitasde aplicações em que talvez seja melhor não dividir os redutores por lógica de negócios, mas por alguns outros critérios. ngrx é apenas uma ferramenta - você ainda terá que pensar!
Sobre a atualização do interface
e initialState
, Eu não vejo porque isso deve ser um problema em qualquer caso - basta adicionar os novos campos, implementar o reducer-cases
e você está pronto (ofc implementar uma exibição em algum componente ect ...).