Oi, Jorge, tudo bem?
Entendo sua dúvida sobre o "piscar" da tela ao carregar os pensamentos no projeto Angular. Isso ocorre devido à forma como a recarga do componente está sendo feita. Inicialmente, a recarga estava sendo realizada com o método location.reload()
, que recarrega toda a página. Em uma aplicação SPA (Single Page Application), isso não é desejado, pois o ideal é que apenas o componente necessário seja atualizado, sem a necessidade de recarregar toda a página.
Por isso, foi apresentada outra abordagem usando a classe Router
do Angular, que permite manipular a navegação entre as views sem recarregar toda a página. No entanto, para que a recarga do componente funcione corretamente, é necessário configurar algumas propriedades do Router
:
onSameUrlNavigation
: essa propriedade define o que deve acontecer quando a navegação ocorre na mesma URL. No caso, foi atribuído o valor reload
para haver a recarga da URL.
routeReuseStrategy.shouldReuseRoute
: essa propriedade define a estratégia de reutilização de rotas. Por padrão, o roteador do Angular reutiliza a instância de um componente quando você navega para esse mesmo tipo de componente sem ter visitado um componente diferente primeiro. No entanto, nesse caso, foi passada uma função que retorna false
para essa propriedade, indicando que a rota não deve ser reutilizada.
Com essas configurações, ao clicar no botão do Mural ou ao adicionar/editar um Pensamento e cancelar, a aplicação não deveria mais "piscar", pois a recarga da página não está mais sendo feita. Em vez disso, apenas o componente necessário é atualizado.
Contudo, vale lembra que mesmo após essa mudança, a piscada na tela pode ocorrer por conta da transição rápida entre os componentes, mas ainda sim a página não será recarregada e o princípio da Single Page Application (SPA) será mantido
Espero ter ajudado. Caso tenha dúvidas, conte com o fórum. Abraços!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!