Я не уверен, что вы пропустили копирование некоторых частей вашего кода.
Но вы хотите взаимодействовать с глобальным объектом report в хранилище Vuex, вам нужно будет добавить отсутствующую функциональность:
export default {
state: {
report: {
isLoaded: false,
data: {},
},
},
actions: {
setData(context, arr) {
context.commit('saveData', arr) //the commit method calls the mutator method and sends through the pay load sent into the function from the outside world (see below)
}
},
mutations: {
saveData(state, val) {
state.report = val //<access the object here and set your data as needed
}
},
getters: {
getReport(state) {
return state.report //return the persisting report variable
}
}
}
Внутри любого компонента вы можете получить доступ к постоянному объекту отчета, используя computed для получения информации через функцию getter:
computed: {
report() {
return this.$store.getters.getReport
},
}
Это означает, что в вашем шаблоне вы можете использовать
{{report}} //points to the computer reported() returned value
Чтобы отправить из вашего компонента новые данные, которые будут установлены в глобальном объекте отчета, вам необходимо получить доступ к:
this.$store.dispatch('setData', data) //Where dispatch->setData is the action being called in the vuex code
Если, с другой стороны, я читаю ваш вопрос с точки зренияобратите внимание, что вся страница обновляется при загрузке другой конечной точки, тогда вы можете заглянуть в sessionStorage.
'https://caniuse.com/#search=sessionstorage' она все еще поддерживается большинством основных веб-браузеров;затем разработайте метод для запуска на уровне приложения, используя соответствующий хук жизненного цикла Vue (может быть, смонтированный?), чтобы установить постоянные данные для модели vuex, как указано выше.
Извлечение: Сохранение объектов Javascript в sessionStorage для полезной информации