Крючки Vuejs не вызываются при перенаправлении одного и того же компонента


Крючки Vuejs не вызываются при перенаправлении одного и того же компонента

09.09.2019 05:32:20 Просмотров 72 Источник

У меня есть страница в проекте 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}
        },

      ]
    },
У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/57856104/vuejs-hooks-are-not-called-on-redirecting-same-component#comment102138664_57856104
Покажите свой код для метода beforeMount, чтобы мы могли лучше помочь
https://stackoverflow.com/questions/57856104/vuejs-hooks-are-not-called-on-redirecting-same-component#comment102138771_57856104
Возможно, проверьте "реагирование на изменения параметров" в документах маршрутизатора vue. Это должно решить проблему, на которую вы смотрите. router.vuejs.org/guide/essentials/…

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

Multicolaure

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 как и предполагал Джблудорн.

Mehboob Mansooor Ali

17.09.2019 11:04:22

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

смотреть : { $маршрут: { немедленно: правда, обработчик() { } } }

Помочь в развитии проекта:
Закрыть X