O NgRx é uma biblioteca de gerenciamento de estado para aplicativos Angular que usa o padrão de arquitetura Flux.
Para usar o NgRx,
você precisa criar ações, reducers e o estado da aplicação. Em seguida, você precisa configurar o NgRx no módulo principal da aplicação e
injetar o estado em seu componente. No componente, você pode selecionar o estado da aplicação e disparar ações para atualizar o
estado.
Ação: Uma ação é um objeto que representa uma intenção de mudar o estado da aplicação. É usado para enviar dados do componente
para o estado da aplicação.
Reducer: Um reducer é uma função pura que define como o estado da aplicação será modificado ao responder às ações. Ele é
responsável por processar as ações e produzir uma nova versão do estado da aplicação.
Estado: O estado é uma representação do estado atual da aplicação. Ele é uma fonte única de verdade que armazena informações sobre
o estado da aplicação, como dados, configurações, preferências, etc. O estado é gerenciado usando o NgRx, e as ações e reducers são
usados para atualizar o estado da aplicação de forma controlada e consistente.
Template-driven Forms (Formulários baseados em template): Nesse tipo de formulário, a estrutura do formulário e as validações são
definidas diretamente no template HTML usando diretivas do Angular, como ngModel, ngForm e ngSubmit. Esses formulários são mais
fáceis de criar e são adequados para casos simples.
Reactive Forms (Formulários reativos): Nesse tipo de formulário, a estrutura do formulário e as validações são definidas
programaticamente no componente usando classes do Angular, como FormGroup, FormControl e Validators. Os formulários reativos
oferecem maior controle e flexibilidade, permitindo a criação de formulários mais complexos e personalizados.
Formulários dinâmicos: O Angular também suporta a criação de formulários dinâmicos, onde os campos e as regras de validação são
gerados dinamicamente com base em determinadas condições ou dados. Isso permite a criação de formulários flexíveis que podem se
adaptar a diferentes cenários.