Como o Contexto não é mais um recurso experimental, é possível usá-lo diretamente no seu aplicativo e será ótimo para passar dados para componentes profundamente aninhados para os quais foi projetado.
Como Mark Erikson escreveu em seu blog :
Se você estiver usando apenas o Redux para evitar a transmissão de objetos, o contexto poderá substituir o Redux - mas você provavelmente não precisará do Redux em primeiro lugar.
O contexto também não oferece nada parecido com Redux DevTools
, a capacidade de rastrear suas atualizações de estado, middleware
adicionar lógica de aplicativo centralizada e outros recursos poderosos que Redux
permitem.
Redux
é muito mais poderoso e fornece um grande número de recursos que Context Api
ele não fornece, também como o @danAbramov mencionou
O React Redux usa o contexto internamente, mas não expõe esse fato na API pública. Portanto, você deve se sentir muito mais seguro usando o contexto via React Redux do que diretamente, porque se isso mudar, o ônus de atualizar o código estará no React Redux e não você.
Cabe ao Redux realmente atualizar sua implementação para aderir à mais recente API de contexto
A API de contexto mais recente pode ser usada para aplicativos em que você simplesmente usaria o Redux para passar dados entre componentes; no entanto, aplicativos que usam dados centralizados e manipulam solicitações de API em criadores de ação que usam redux-thunk
ou redux-saga
ainda precisam de redux. Além desse redux, há outras bibliotecas associadas, como as redux-persist
que permitem salvar os dados da loja no localStorage e reidratar na atualização, que é o contexto em que a API ainda não suporta.
Como @dan_abramov mencionou em seu blog Você pode não precisar do Redux , que o redux possui aplicativos úteis como
- Persista o estado para um armazenamento local e, em seguida, inicie a partir dele, pronto para uso.
- Pré-preencha o estado no servidor, envie-o para o cliente em HTML e inicie-o, imediatamente.
- Serialize ações do usuário e anexe-as, juntamente com um instantâneo de estado, a relatórios de erros automatizados, para que os desenvolvedores do produto
possam reproduzi-los para reproduzir os erros.
- Passe objetos de ação pela rede para implementar ambientes colaborativos sem mudanças drásticas na forma como o código é escrito.
- Mantenha um histórico de desfazer ou implemente mutações otimistas sem mudanças drásticas na forma como o código é escrito.
- Viaje entre o histórico do estado em desenvolvimento e reavalie o estado atual do histórico de ações quando o código for alterado, à la TDD.
- Forneça recursos completos de inspeção e controle para as ferramentas de desenvolvimento, para que os desenvolvedores de produtos possam criar ferramentas personalizadas para seus
aplicativos.
- Forneça interfaces de usuário alternativas enquanto reutiliza a maior parte da lógica de negócios.
Com esses muitos aplicativos, é muito cedo para dizer que o Redux será substituído pela nova API de contexto
duix
pacote npm. É apenas um gerenciador de estado simples com retornos de chamada, realmente fácil de implementar. Só para esclarecer: eu sou o criador.