Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Dúvida sobre rotas

No exercício do curso: página PetShop é possível navegar para a página cadastro, mas, se eu recarregar a página aparece a mensagem Cannot GET /cadastro, outro exemplo é se eu digitar petshop/gato vai aparecer a mensagem Cannot GET /gato já que essa rota não foi criada...

Minha dúvida é: A forma "correta" de criar rotas onde eu possa recarregar a página e tratar possíveis erros, é via express?

Imaginando um cenário Front-end e Back-end As rotas criadas no curso e a navegação seria para que o back-end tenha uma ideia de como a página deve se comportar e, com isso fazer as navegação acontecer sem o erro de recarregar e tratar possíveis erros?

Obrigado

7 respostas

Fala ai Rodolfo, tudo bem? Vamos lá:

Minha dúvida é: A forma "correta" de criar rotas onde eu possa recarregar a página e tratar possíveis erros, é via express?

Isso vai depender muito, não existe uma correto ou certo (assim como você destacou).

Em casos de Single SPA acho que o gerenciamento de rotas deve ser controlado pelo client, no caso, o front iria validar se a rota existe ou não.

Agora se o projeto é SSR (Server side render) ai o controle poderia ser no express, vai depender muita da arquitetura utilizada.

Espero ter ajudado.

E ai Matheus, bem e você? Tem algum exemplo prático de gerenciamento de rotas pelo client... Estou tomando um coro :/

Obrigado

Fala Rodolfo, tudo bem? Depende de como está seu cliente o que está usando, no caso do React tem a React Router.

No Angular já tem o próprio sistema de rotas dele e no Vue tem o Vue Router.

Espero ter ajudado.

Fala Matheus, obrigado pelos os links, mas eu quero entender essa parte de rotas client com javascript puro, não sei se você tem conhecimento de como está o curso de SPA da alura , seguindo essa estrutura do curso que eu quero entender como seria o tratamento de rotas, já que no curso isso não é explicado. Desculpa a chatice :(

Obrigado

Fala Rodolfo, nesse caso é algo bem mais complexo.

Você vai precisar dar uma olhada na History API, ela é responsável por mudar as rotas sem carregar as páginas, normalmente essas bibliotecas de rotas realizam implementações da mesma.

No caso o método pushState é que vai trocar a URL sem recarregar a rota.

Dessa maneira, você vai precisar ter um componente Router que recebe várias rotas, esse componente ficaria ouvindo mudanças de rotas, ou seja, ouvindo chamadas da History API.

Quando alguma chamada for executada e a rota for modificada, você através de alguma condição e lógica renderiza o componente responsável por essa rota.

Espero ter ajudado.

solução!

Ah, blza Matheus, vou dar uma olhada... Brigadão \m/

Magina Rodolfo, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.