Обнаружение выходящих изменений маршрута в Vue - PullRequest
0 голосов
/ 18 февраля 2020

Я работаю над компонентом, который позволяет пользователю отменить удаление элемента. Однако элемент должен быть удален, когда пользователь переходит на другой маршрут. Чтобы добиться этого, я наблюдаю маршрут следующим образом:

  `watch: {
    $route(to, from) {
      if (this.showUndo === true) {
        console.log('item will be deleted');
        this.confirmDelete();
      }
    },
  },

`

К сожалению, это срабатывает только когда я вхожу в этот указанный c маршрут, а не при выходе из него. Объяснение того, почему это или альтернатива моему watch: - методу, было бы очень полезно!

В основном я ищу альтернативу beforeRouteLeave, так как это подкомпонент, и поэтому я могу ' использовать навигационную охрану. Спасибо!

1 Ответ

1 голос
/ 18 февраля 2020

Vue крюк жизненного цикла- BeforeDestroy срабатывает непосредственно перед демонтажем. Ваш компонент по-прежнему будет полностью представлен и функционален. Если вам нужно очистить события или реактивные подписки, возможно, перед этим будет время сделать это.

<script>
export default {

  beforeDestroy() {
   //Try like this
    this.confirmDelete();
    console.log('item will be deleted');

  }
}
</script>

Ref - https://vuejs.org/v2/api/#beforeDestroy

...