Я хотел бы использовать vuex-persistedstate для хранения значений корзины для вошедших в систему пользователей и не вошедших в систему. Я хотел бы иметь действие или мутацию после входа и выхода из системы, которая будет загружать состояние из localStorage,
Чтобы дифференцировать пользователей, я задаю соответствующий ключ, как показано ниже:
import createPersistedState from 'vuex-persistedstate'
export default ({store}) => {
window.onNuxtReady(() => {
let key;
(!!store.state.user.info) ? key = store.state.user.info.id : key = 'guest';
createPersistedState({
key,
paths: [
'cart'
]
})(store)
})
}
И затем в локальном хранилище я могу сохранить пользовательскую и гостевую корзину:
user_id_here |{ "Корзина": [{ "ID": 1, "количество": 3, "Код": "ce11eda1-0331-4d64-8793-0646ef287a6b"}, { "идентификатор": 1, "количество": 14,»sku ":" 2631399 ...
guest | {"корзина": [{"id": 3, "количество": 1, "sku": "ce1dsada1-0221-4d64-8133-0646ef287a6b "}, {" id ": 5," amount ": 1," sku ":" 2685979 ...
Пример сценария:
- Пользователь открывает веб-сайт гостем.
- Приложение при загрузке сохранено. Состояние по имени ключа - корзина для гостя.
- гость добавляет некоторые продукты или что-то еще.* Вход пользователя в систему - запуск создания нового состояния для входа пользователя, возможно объединение корзин.
- пользователь добавляет некоторые значения в корзину, которые сохраняются в корзине пользователя.
- выход пользователя из системы - изменение триггерасостояние на госте.
Основной вопрос:
Как загрузить состояние из локального хранилища в vuex-persistedstate при действии, мутации или других действиях vuex?
Короче говоря: пользователь входит / выходит - плагин обнаруживает действие или мутацию, поэтому он перезагружает состояние для конкретного клиента(Пользователь / гость)