Крючки Vuejs не вызываются при перенаправлении одного и того же компонента
У меня есть страница в проекте Vuejs. Оба они находятся на одном уровне и имеют общий компонент. При перенаправлении с post / new На post / edit/: id метод beforeMount не вызывается.
redirect() {
this.$router.push({path: `home/post/edit/${this.post.id}`})
},
Маршруты:
{
path: 'home',
name: 'home',
component: {
render(c) {
return c('router-view')
}
},
children: [
{
path: 'post/new',
component: PostForm,
name: 'Create',
props: {readOnly: false}
},
{
path: 'post/edit/:id',
component: PostForm,
name: 'Edit',
props: {readOnly: false}
},
]
},


Ответы - Крючки Vuejs не вызываются при перенаправлении одного и того же компонента / Vuejs hooks are not called on redirecting same component

09.09.2019 05:54:54
Экземпляр PostForm
повторно используется по соображениям производительности. Именно поэтому beforeMount
вызывается только один раз.
Вы должны переместить свой код в:
beforeRouteUpdate (to, from, next) {
// the code you currently have in beforeMount
}
См. https://router.vuejs.org/guide/essentials/dynamic-matching.html#reacting-to-params-changes как и предполагал Джблудорн.

17.09.2019 11:04:22
вы используете тот же компонент, поэтому посещаете post / new, ваш компонент уже установлен перенаправление post / edit/: id меняются только маршруты, попробуйте добавить beforeRouteUpdate или вы также можете добавить watch on $route
смотреть : { $маршрут: { немедленно: правда, обработчик() { } } }