Задать вопрос
  • Почему при использовании динамической регистрации модулей в vuex появляется множественный запуск экшенов/мутаций?

    @north_man Автор вопроса
    Разобрался с проблемой.
    Неправильно происходило удаление модуля.
    В хуке beforeRouteEnter нет доступа до компонента через this, поэтому надо использовать next
    beforeRouteEnter(to, from, next) {
          next((vm) => {
              // vm ссылается на компонент
          });
        },


    Аналогично пробовал сделать и в хуке beforeRouteLeave для отключения модуля, но это не отрабатывало, не происходило удаление модуля. При каждом входе в раздел регистрировался дополнительный модуль, появлялся множественный вызов экшенов.
    Внимательнее посмотрел в документации, оказалось что в beforeRouteLeave можно использовать this для работы с компонентом, переписал хук
    beforeRouteLeave(to, from, next) {
          this.$store.unregisterModule(name);
          next();
        },

    Теперь все отрабатывает как надо
    Ответ написан
    Комментировать