Uma aplicação de demonstração focada em aplicar e consolidar os conhecimentos do curso "NgRx (with NgRx Data) - The Complete Guide (Angular 20)" sobre gerenciamento de estado com NgRx e as otimizações do NgRx Data.
Este projeto serve como meu laboratório de testes para dominar os seguintes conceitos:
- Fundamentos do NgRx: Actions, Reducers, Selectors e o Store.
- Gerenciamento de Efeitos (Side Effects): Uso de NgRx Effects para lidar com chamadas assíncronas (HTTP).
- NgRx Data: Simplificando o CRUD (Create, Read, Update, Delete) com Entity Collections.
- Otimização: Uso de Selectors para performance e Imutabilidade.
- Angular: Versão 20+
- NgRx: Store, Effects, Store Devtools e Entity (Para NgRx Data).
- Outras libs: (Se houver alguma biblioteca como Material, Tailwind, etc.)
Abaixo, um guia para encontrar a implementação de cada conceito principal:
| Funcionalidade | Conceito NgRx | Arquivos Chave |
|---|---|---|
| Login/Autenticação | Effects, Store | auth.actions.ts, auth.effects.ts |
| Gerenciamento de Entidades (CRUD) | NgRx Data (Entity Services) | entity-metadata.ts, services/entity.service.ts |
| Listagem de Itens | Selectors, Entity Collection | selectors/item.selector.ts, item-list.component.ts |
| Caching e Loading | Estado do NgRx Data | loading.selectors.ts |
- Clone o repositório:
git clone https://github.com/bribinha/ngrx-data-study-case.git cd nome-do-projeto - Instale as dependências:
npm install
- Inicie a aplicação:
Navegue para
ng serve
http://localhost:4200/no seu navegador.
Como este é um projeto de estudo, você pode mantê-lo simples, focando em suas próprias anotações e regras.
# Contribuindo para este Projeto de Estudos
Este repositório é primariamente um ambiente de estudo e laboratório pessoal.
**Qualquer um é bem-vindo para:**
1. **Abrir Issues** para apontar bugs, sugerir melhorias na arquitetura ou correções de código.
2. **Enviar Pull Requests (PRs)** se identificar um erro conceitual grave na implementação do NgRx.
## Regras Internas:
* **Branches:** Os novos recursos/correções devem ser feitos a partir da branch `main` e enviados para a branch `develop`.
* **Commits:** Siga a convenção de commits (ex: `feat:`, `fix:`, `refactor:`) para manter o histórico limpo e rastreável.