Кароч
На самом деле все проще чем тут пытаются навязать
Все функции делайте в methods().
Когда первый раз загружаете компонент, то вместо всей функции вызывайте соответствующий метод, например this.startComponent()
Затем создаете
watch
Этот watch будет выглядеть как то так:
watch: {
'$route'(){
this.startComponent()
}
}
И тогда все заработает как вы хотите
Про watch с route
можете прочитать тут