Vuex unregisterModule что он делает? - PullRequest
5 голосов
/ 04 июля 2019

Я немного запутался в том, что на самом деле делает unregisterModule.

Если у нас есть такой модуль:

{
    state: {
        page: 1
    }
}

Затем динамически отмените / зарегистрируйте его:

beforeCreate() {        
    this.$store.registerModule('items', store);
},

beforeDestroy() {
    this.$store.unregisterModule('items');
},

Если мы внесем изменение в page, перейдите путь (который вызывает unregister), а затем вернитесь назад.

Кажется, что состояние сохраняется?Я думаю, что unregister полностью убивает модуль и все данные, состояния и т. Д.

Я могу сделать состояние функцией следующим образом:

{
    state() {
        return {
            page: 1
        }
    }
}

Но тогда это все еще не 'Тогда нельзя изменить вопрос о том, что на самом деле делает unregisterModule?

Это также означает, что мне придется либо изменить все мои объекты состояния на функции, либо использовать какой-либо метод сброса при отмене регистрации.Это кажется совершенно бессмысленным, что мне здесь не хватает?

1 Ответ

2 голосов
/ 11 июля 2019

unregisterModule просто удаляет модуль, и вы не можете получить к нему доступ.

Я использую его для вкладок у меня внутри страницы.Всякий раз, когда вы переходите на эту страницу, модуль зарегистрирован, а когда вы уходите, модуль отменяет регистрацию.

Важно то, что когда вы снова перейдете на эту страницу, состояние модуля будет таким же, как вы.оставил это, так что нет необходимости заново делать вещиНапример, я не вызываю API для повторной выборки, так как данные все еще там.

В тех случаях, когда я хочу очистить состояние при отмене регистрации модуля, у меня просто есть clearStateмутация, чтобы очистить государство.

beforeDestroy() {
    this.$store.commit('module/clearState')
    this.$store.unregisterModule('module');
}

Пример:

В это коды и поле у вас есть 3 страницы: Главная, О нас, Контакты

Когда:

  1. Вы на главной странице увеличиваете счетчик

  2. Далее вы переходите на страницу о том (модуль недоступен)

  3. Наконец, перейдите на страницу контактов, вы можете увеличить счетчик от того места, где он слева от домашней страницы.

...