2
respostas

Como o react-redux faz cache do state?

O uso do react-redux permite que o componente seja renderizado novamente apenas se o estado mudar. Da forma que eu entendi, seria necessário chamar novamente as operações, para verificar se o estado mudou e o ganho em performance seria apenas evitar uma nova renderização. O que aconteceu foi que as operações também não são mais chamadas, pois aparentemente o estado fica em cache! Isso significa que se alguém acessar a aplicação de outra máquina, por exemplo, e inserir dados novos na timeline de um usuário, o usuário com o cache não vai visualizar os novos dados! Ou seja, teremos um bug na aplicação.

Então, minha pergunta é: Quando o cache do estado é atualizado? Em que evento do componente React é forçado um update, mesmo que o estado permaneça o mesmo? Pelos meus testes, vi que preciso dar um submit na página para que o componente react seja recriado e assim as operações sejam chamadas novamente. Mas numa aplicação real, como resolveríamos esse problema?

2 respostas

Fala aí Giuliana, tudo bem?

Quando o cache do estado é atualizado?

Na verdade o Redux não faz cache (por padrão), ele apenas mantém os dados e será modificado/atualizado quando você realizar o dispatch de uma action.

Em que evento do componente React é forçado um update, mesmo que o estado permaneça o mesmo?

A atualização do componente pode ser feita quando você chamar o this.setState ou disparar novas ações para o Redux.

Espero ter ajudado.

Não me refiro ao Redux, mas sim ao React-Redux (Referente ao curso React parte 3, no capítulo Integração entre React e Redux e atividade 2- Usando a função connect do React), esse último mantém uma espécie de cache para prevenir atualizações de estado desnecessárias, ou seja, ele tem uma implementação do shouldComponentUpdate para prevenir essas atualizações. Considerando isso, mantenho minha pergunta original.