Algumas vezes é necessário buscar dados quando uma rota é ativada. Por exemplo, antes de renderizar um component UsuarioPerfil, você precisa buscar mais informações sobre o usuário no Servidor/API. Isso pode ser alcançado basicamente de duas formas:

  1. Buscar depois da navegação: executar a navegação primeiro, e buscar os dados nos Lifecycle Hooks (ex: created) do Component que será renderizado, mostrando um "loading" enquanto os dados são trazidos.

  2. Buscar antes da navegação: buscar os dados antes da navegação ser confirmada na guarda "beforeRouteEnter", e prosseguir (next) com a navegação depois que os dados chegarem do Servidor/API

Tecnicamente as duas abordagens são válidas, tudo depende apenas da experiência que você deseja entregar para o usuário da sua aplicação.

A documentação do Vue Router possui uma seção que fala exatamente sobre isso e mostra o código na prática, vale a pena dar uma olhada: https://router.vuejs.org/guide/advanced/data-fetching.html

Grande abraço,
Plínio Naves