O documento resume uma apresentação sobre programação reativa com Angular, RxJS e Redux (ngRx). Apresenta conceitos como Observables, Promises, padrão Observer e como desenvolver funcionalidades reativas em Angular com forms, http, pipes e arquitetura escalável com ngrx/store. Inclui exemplos de uso de redux para gerenciamento de estado e integração com serviços HTTP.
19. • atendida - a ação relacionada à promessa teve sucesso
• rejeitada - a ação relacionada à promessa falhou
• pendente - a ação ainda não foi atendida nem rejeitada
• definida - a ação foi atendida ou rejeitada
Uma promessa pode ser:
78. ACTIONS
REDUCERS STORE VIEW
Store
“Banco de dados” da aplicação
Manipulação do estado acontece nos reducers que registram o
estado na store
Pode executar ações pré ou pós reducer (middleware)
123. Components: Dumb Components
- Apenas recebem informações via Input properties e disparam
eventos com Output properties
- NÃO sabem nem se comunicam com Store ou Estado da
aplicação
144. @ngrx/router-store: estado do roteamento na store
@store-devtools: integração redux-devtools
@store-log-monitor: monitoramento da store
ngrx-store-freeze: garante estado imutável no
desenvolvimento do projeto
145. Desafios (ainda não 100% definidos)
Lazy loading dos arquivos ngRx:
https://github.com/ngrx/store/issues/197
https://www.npmjs.com/package/ngrx-domains (alfa)
148. Quando uma mudanças acontece, o Angular compara cada
valor da propriedade do Componente com o valor anterior
que está sendo usado no Template
Se o valor atual e anterior são diferente, seta o valor do
component como isChanged = true;
Como funciona?
155. Prós e Contras:
1.Fluxo unidirecional ✅
2.Debug volta ao tempo (DevTools) ✅
3.Separação do código ✅
4.Fácil debug e bug fix (1, 2, e 3) ✅
5.Mais fácil pra testar devido à funções puras ✅
6.Melhor performance (onPush) ✅
7.Serialização do estado ✅
8.Mais uma camada == mais código ⛔
157. Gerenciamento de estado previsível
Fácil de testar (estado imutável + DI)
Desacoplado de formatos de mensagem e servidor
Serviços não sabem do estado da aplicação
Sistema modular + lazy loading