Arquitetura Flux
Conceitos
O que é Redux?
- Biblioteca que implementa a Arquitetura Flux;
- Controle de estados globais;
- Quando utilizar o Redux?
- Meu estado tem mais de um "dono"?
- Meu estado é manipulado por mais componentes?
- As ações do usuário causam efeitos colaterais nos dados?
- Exemplos: Carrinho de compras, dados do usuário, player de música, etc;
Arquitetura Flux
Exemplo gráfico
CATÁLOGO -> Action
Exemplo da Action:
{type: "ADD_TO_CART",product: { ... }}
Action -> Redux Store (Reducers) -> Mutação no estado
Princípios
- Toda action deve possuir um type;
- O estado do Redux é o único ponto de verdade;
- Não podemos mutar o estado do Redux sem uma action;
- As actions e reducers são funções puras, ou seja, não lidam com side-effects assíncronos;
- Qualquer lógica síncrona para regras de negócio deve ficar no reducer e nunca na action;
- Nem toda aplicação precisa do Redux, inicie sem ele e sinta a necessidade depois;