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:
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.
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