Exercícios: Aula 11 - Gerenciamento de Estado (Pinia) 🍍
1. Por que usar Pinia?
Cite uma situação em que o uso do Pinia (Gerenciamento de Estado Global) é preferível em relação ao uso de Props e Events. O que é o problema do "Prop Drilling"?
2. Criando uma Store
Crie uma store chamada useCounterStore usando o estilo Setup Store.
- Defina um state (ref) chamado count.
- Defina uma action (function) chamada increment.
- Defina um getter (computed) chamado doubleCount que retorna o dobro do valor atual.
3. Consumindo a Store
Importe a store criada acima em um componente Vue. Exiba o valor de count e de doubleCount no template. Chame a action increment ao clicar em um botão.
4. Persistência de Estado
Como você faria para que os dados de uma Store do Pinia não fossem perdidos quando o usuário atualiza (F5) a página? Cite uma estratégia ou plugin que ajude nisso.
5. Desafio: Lista de Compras Global
Crie uma useCartStore que gerencie um array de produtos no carrinho.
- Crie uma action para adicionar um produto ao array.
- Crie um getter que calcule o valor total do carrinho (soma dos preços).
- Crie dois componentes diferentes na página: um que adiciona itens e outro que exibe apenas o total acumulado, provando que ambos compartilham o mesmo estado.