2
respostas

Mutação e Ação

Tô achando muito confuso ter mutação e ação, não entendi ainda porque ter os dois e ao mesmo tempo ter ADICIONA_TAREFA em mutations e CADASTRAR_TAREFA em action não ajuda muito.

2 respostas

Olá, Andrea, tudo bem?

Essa dúvida é bem comum quando começamos a trabalhar com Vuex. No Vuex, utilizamos ações (actions) e mutações (mutations) para organizar e controlar como os dados são manipulados e atualizados na aplicação. A diferença principal entre eles é o que cada um faz e onde se encaixa no fluxo de dados.

Mutations (mutações): são métodos síncronos que alteram o estado (state) diretamente. Como são síncronas, é aqui que você altera o estado final, como adicionar a tarefa à lista de tarefas local. Por exemplo, ADICIONA_TAREFA é uma mutação que insere a nova tarefa no array tarefas.

Actions (ações): são métodos assíncronos que chamam as mutações. Elas são úteis para operações que podem envolver comunicação com APIs ou processamento de dados antes de serem aplicados ao estado. Em vez de modificar o estado diretamente, uma action, como CADASTRAR_TAREFA, faz uma chamada à API para cadastrar a tarefa e depois aciona a mutação ADICIONA_TAREFA com os dados que a API retornou.

Esse padrão ajuda a manter o controle e a rastreabilidade de mudanças de estado em aplicações complexas, pois deixa claro o que cada parte está fazendo.

Espero ter ajudado!

Siga firme nos seus estudos e conte com o fórum sempre que precisar!

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

Obrigada Mike