/ / Angular 2 Redux initialState e interface de initialState - angular, redux, ngrx

Angular 2 Redux initialState e interface de initialState - angular, redux, ngrx

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 № 1

Eu 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 ...).