Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Route params vs parametros por service

Boa tarte,

Na questão do controle do fluxo de navegação e transferência de informações entre componentes.

Supondo que tenho uma aplicação que contenha uma fluxo de navegação: Grupos de contas --> Contas --> .....

Vejo que o fluxo de navegação pode ocorrer utilizando duas abordagens:

  1. Parametros de rota (idConta):
    • Estou na rota http:///......./GrupoDeContas, cliquei em uma conta para navegar
    • Disparo a chamada para a rota http://......./Conta/:idConta
    • No ngOnInit do compontene Conta, recupero o idConta da rota e carrego as devidas informações.
  2. Passagem de valor por service e dependency injection
    • Estou na rota http:///......./GrupoDeContas, cliquei em uma conta para navegar
    • Tenho um Service "contaService", onde atualizo um atributo _idContaSelecionada
    • Disparo a chamada para a rota http://......./Conta
    • No ngOnInit do compontene Conta, recupero o atributo _idContaSelecionada do service e carrego as devidas informações.

Existe alguma melhor prática recomendada, ou como já imagino que seja a resposta, vai depender da situação?

Obrigado.

1 resposta
solução!

Olá, Alexandre! Tudo bem?

Desculpa pela demora!

A melhor forma de carregar informações em um componente é user parâmetros da rota. Isso porque é mais previsível. Por exemplo, usuários do sistema podem compartilhar entre si esses links e, como sabemos que a informação do dado está sempre na rota, temos a garantia que podemos pegar de lá.

Usando services, você precisará sempre tomar cuidado com a forma que o usuário está acessando aquela página. Se você puxa os dados pelo ID do item selecionado na lista, por exemplo, não conseguirá carregar os dados se o usuário não veio pela lista, mas por um link enviado por mensagem ou pelo histórico do navegador.

Bons estudos!