PavelUstyugov
@PavelUstyugov
proger support

Как в SPA с Vuex осуществить открытие новой вкладки с передачей данных?

SPA приложение использует vuex.
Нужно чтобы при клике на кнопку вызывалась функция, которая делает некоторые вычисления, отталкиваясь от данных формы и открывает новую вкладку в браузере используя route но чтобы туда передались данные включая состояния приложения state ?

Я вот такое решение нашел:
let routeData = this.$router.resolve({name: 'routeName', query: {data: this.calc}});
window.open(routeData.href, '_blank');


Но к сожалению открывается страница, а данные в нее не передались. А хотелось бы чтобы туда передались данные из объекта calc содержащего много заполненных полей.
  • Вопрос задан
  • 68 просмотров
Решения вопроса 1
coderisimo
@coderisimo
Хотите ответ? Формулируйте вопрос КОРРЕКТНО ! :)
Если не хотите светить данные в url - можно использовать sessionStorage / localStorage
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
pingo
@pingo
import VuexPersistence from 'vuex-persist'
const persistData = new VuexPersistence({
    // strictMode: true, 
    storage: localStorage,
    reducer: (state) => ({ data : state.data }),
})

export default new Vuex.Store({

    plugins: [persistData.plugin],

....


все данные ,которые ты укажешь как персистетные, стор будет синхронизировать между собой и локалстором браузера
юзаю на продакшене
Ответ написан
@dimuska139
Backend developer
Единственный рабочий вариант - через адресную строку. То есть как-то так:
window.open(routeData.href + '?param=1&param=2', '_blank');

А зачем Вам, кстати, именно открытие новой вкладки? Просто в SPA так обычно не делают, если открываемая вкладка не какой-то сторонний ресурс.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы