В моем магазине Vuex есть капли, и я хочу загрузить состояние моего приложения как. JSON и восстановить его.
В общем, JSON .stringify (store.state ,. ..) прекрасно работает без капель. Я просто не знаю, как я могу сохранить BLOB-объекты в JSON.
Вот мой код. Блок if(value instanceof Blob)
содержит мою попытку конвертировать BLOB в JSON.
const s = JSON.stringify(store.state
, (key, value) => {
// let process = true;
if (typeof value === 'object') {
if(value instanceof Blob){
//I can't get this to work:
// const reader = new FileReader();
// // let process = false;
// reader.onload = function(event){
// console.log(JSON.stringify(reader.result));
// value = JSON.stringify(reader.result);
// return value;
// };
// reader.readAsText(value);
// process = false;
}
// Duplicate reference found, discard key
if (cache.includes(value)) return;
// Store value in our collection
cache.push(value);
}
if(process){
return value;
}
})
//download
const newBlob = new Blob([s], { type: 'application/json;' });
const filename = `jam-along-${new Date().getTime()}.json`;
saveAs(newBlob, filename);
cache = [];
}
Другая идея заключалась в том, чтобы использовать Vuex-Persist для загрузки магазина с настроенным saveState: (key, state, storage) =>{...
, но я не могу заставить его работать. Я не хочу, чтобы vuex-persist что-либо делал в sessionStore или localStorage, и я хочу вызвать saveState
извне, не изменяя хранилище.
Есть ли способ загрузить и восстановить мой магазин vuex?
Спасибо!