#vuejs2 #hook #router
Вопрос:
У меня есть приложение Nuxt Vue 2. В смонтированном перехвате происходит перенаправление на тот же маршрут. Единственное отличие в этом маршруте — строка запроса. Похоже
mounted() {
...
if( !isTokenOwner ) {
const result = await this.$api.campaignNewShare.copyNewShare(this.newShareToken);
localStorage.setItem(result.data.token, new Date().getTime());
this.$router.replace({'name': 'campaigns-new', 'query': {token: result.data.token}});
this.loading = false;
return;
}
}
Кажется, что Vue остается на той же странице и заменяет только параметр строки запроса url. Но мне нужно перенаправить на новое местоположение с совершенно новым жизненным циклом.
Может кто-нибудь сказать мне, что на самом деле произошло там после вызова replace()? Почему он не запускает реальное перенаправление? Thnaks.
Ответ №1:
Хорошо, как говорится в документации
При использовании маршрутов с параметрами следует учитывать, что когда пользователь переходит из /user/foo в /user/bar, один и тот же экземпляр компонента будет использоваться повторно. Поскольку оба маршрута отображают один и тот же компонент, это более эффективно, чем уничтожение старого экземпляра, а затем создание нового. Однако это также означает, что перехваты жизненного цикла компонента вызываться не будут.