есть компонент Foo и компонент Bar, они используют один модуль сторы. Эти компоненты никогда не появляются вместе на одной странице. Состояние сторы может быть довольно жирным, так что мне необходимо перед уничтожением одного из компонентов ресетнуть это состояние. Action для сброса состояния я вызываю в хуке beforeDestroy в каждом компоненте. Перед отрисовкой одного из компонентов я инициализирую состояние определенными значениями вызывая соответствующие actions в хуке created. Проблема: если я перейду на страницу где рисуется компонент Foo, а потом на страницу где рисуется компонент Bar, то так как во Vue beforeDestroy отрабатывает позже чем created новых компонентов, то сначала я инициализирую логику через created в Bar, а потом эти значения сбросятся в beforeDestroy Foo, и логика инициализации просто потеряется. Такую проблему сброса стора можно как то решить? Инициализировать логику в mounted не подойдет т.к у меня сср :)
соединить компоненты в один :)
Как вариант, сбрасывать стор перед переключением компонентов
Не очень понимаю что это даст, логика инициализации разная у компонентов
да я больше в шутку )
Поздравляю, вы встретили себе в ногу. Если вам нужно в хуках жизненного цикла компонентов сбрасывать Стейт сторы значит вы свернули куда-то не туда
Как только я понял что у меня есть эта проблема, я сразу сказал себе что я выстрелил себе в ногу) Поэтому и написал сюда, может есть быстрое решение, что бы не переписывать много
Со старой нет быстрых решений, за это её и не любят
Не легче ли просто локально на уровне компонента дергать данные каждый раз, без вьюкса?
Вьюкс предразумевает глобальный стейт, а в вашем случае это просто апи который дергается на двух страницах, и тут нету смысла объединять это в стор. Вы тут не выигрываете ничего, и тем более вы сбрасываете его при удалении компонента
Если писать с нуля - легче :) Исторически получилось так что один из компонентов был завязан на стору, потом появился второй который с такой же логикой, но немного другой, переписывать долго под локальное состояние, поэтому осталась подвязка к сторе у обоих с надеждой на ресет. Как то так
Ну тут тогда на ваше усмотрение, либо поддерживать не очень хорошую архитектуру которая будет возможно еще больше разрастаться, либо сделать по красоте =)
В данный момент нету времени переписывать, поэтому решил спросить идеи для быстрого фикса. Если бы было всегда время переписывать у всех были бы идеальные решения всегда. Я впринципе сделал костыль, но думал может что то поадекватнее будет
Лучше сделать костыль, так как все равно в будущем код будет переписан) Главное что-бы бизнес задача была решена в данном случаи 🙂
Да, тут согласен с вами, любое решение без локального состояние будет костыльным, спасибо. Просто не хочется что бы костыль был супер неявным
Просто надо прокомментировать в коде этот момент и оставить как тех долго и все будет кул )
Обсуждают сегодня