BonBonSlick
@BonBonSlick
Junior Web Developer Trainee

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

Vuex, в стейте лежит куча инфы по разным модулям, к примеру:
1 - состояние аутентификации
2 - детали пользователя, конфигурации и настройки
3 - формочки, что бы юзер мог продолжить набирать с того места где закончил (знаю что тут надо синхронизировать с АПИ в идеале, но пока только на клиенте)
4 - прочее, доп инфа для реактивности

Выходит что когда делаем логаут, надо чистить много модулей или сделать глобальный ресет.
Каждый модуль обладает 2 методами
1 - reset = сбарсывает все до дефолтнлго состояния, само собой даже если были изменения по полям
2 - clear - обнуляет данные по типу, string = '', json = '{}', int = 0 и так далее, смотря как реализован метод

Одно дело когда модулей до 10, другое когда их 25, 30+ уже становится геморно писать все эти методы и следить за ними, вызывать после логаута. Т.к.к лишь часть состояний, модулей чистится, к примеру список картинок на главной странице можно оставить что бы еще раз не дергать АПИ, пускай это дело и спорное ведь после логаута юзер условно сбрасывает предпочтения, но тогда все-равно многие сайты используют куки для трекинга запросов для рекоммендаций.

ВОзможно что бы упростить разработку, будет проще все скинуть глобально, пока размышляю.
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
Aetae
@Aetae
Тлен
Ну добавь каждому модулю свойство типа __logoutAction: 'reset' | 'none' | 'clear' с дефалтом на 'none' и при логауте просто пройтись циклом по модулям.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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