Imagine um e-commerce React ou Vue com:
Carrinho global.
Badge de itens no header.
Modal mostrando resumo.
Passar props encadeadas (“prop drilling”) torna-se frágil e difícil de manter quando a árvore cresce12. Daí surge a necessidade de um estado centralizado.
| Conceito | Redux | Vuex |
|---|---|---|
| Store | Objeto imutável único34 | Árvore reativa única56 |
| Mutação | reducer puro: recebe (state, action) → novo state3 |
mutation: função sincrona que altera state76 |
| Ação | Objeto {type, payload} (pode ser async via thunk)8 |
action: pode conter lógica assíncrona910 |
| Fluxo | View → dispatch → Store → View atualizar | View → dispatch/commit → Store → View atualizar |
| DevTools | Time-travel, log de ações1112 | Timeline; debug reatividade, travel em Vuex 5.x1314 |
Após explicar, exiba os diagramas para fixar a ideia:

Fluxo de dados unidirecional no Redux

Fluxo de dados no Vuex
Instalação
npm i @reduxjs/toolkit react-redux