Перезагрузить данные компонента на основе состояния vuex - PullRequest
0 голосов
/ 04 февраля 2019

Я создаю одну панель администратора для нескольких интернет-магазинов.Чтобы отслеживать, какой веб-сайт я сейчас редактирую, у меня есть объект website в моем состоянии vuex.Веб-сайт можно изменить с помощью кнопки, которая отправляет действие над состоянием.

Страница панели администратора - это страница, на которой отображается статистика для выбранного веб-сайта, данные для этой статистики в настоящее время сохраняются на самом компоненте страницы.

Теперь у меня проблема при переходе на другой веб-сайт, когда я на панели инструментов.Поскольку URL-адрес одинаков для панелей мониторинга, статистика не меняется.Я полагаю, это связано с тем, что vue-router не обнаружил изменения в URL, поэтому нет необходимости перезагружать компонент, однако я бы хотел, чтобы это происходило при изменении веб-сайта.Или, по крайней мере, способ узнать, что веб-сайт изменился, поэтому я мог снова вручную вызвать источник ajax.

Я только начал использовать vue несколько недель назад и не нашел способа сделать это.

1 Ответ

0 голосов
/ 04 февраля 2019

Вы можете подписаться на мутации и действия Vuex: https://vuex.vuejs.org/api/#subscribe

В созданном хуке компонента панели администратора, если вы вводите хранилище Vuex, вы можете получить что-то вроде:

created: function() {
    this.unsubscribe = this.$store.subscribe((action, state) => {
        if (action.type === 'changeWebsite') {  // Whatever your action is called
            this.updateWebsiteData(action.payload); // Method to update component data 
        }
    });
},
beforeDestroy: function() {
    this.unsubscribe();
},
...