169 похожих чатов

Всем привет! Подскажите, столкнулся с такой проблемой: У меня

есть компонент Foo и компонент Bar, они используют один модуль сторы. Эти компоненты никогда не появляются вместе на одной странице. Состояние сторы может быть довольно жирным, так что мне необходимо перед уничтожением одного из компонентов ресетнуть это состояние. Action для сброса состояния я вызываю в хуке beforeDestroy в каждом компоненте. Перед отрисовкой одного из компонентов я инициализирую состояние определенными значениями вызывая соответствующие actions в хуке created. Проблема: если я перейду на страницу где рисуется компонент Foo, а потом на страницу где рисуется компонент Bar, то так как во Vue beforeDestroy отрабатывает позже чем created новых компонентов, то сначала я инициализирую логику через created в Bar, а потом эти значения сбросятся в beforeDestroy Foo, и логика инициализации просто потеряется. Такую проблему сброса стора можно как то решить? Инициализировать логику в mounted не подойдет т.к у меня сср :)

15 ответов

21 просмотр

соединить компоненты в один :)

Как вариант, сбрасывать стор перед переключением компонентов

Maksym-Anisimov Автор вопроса

Не очень понимаю что это даст, логика инициализации разная у компонентов

да я больше в шутку )

Поздравляю, вы встретили себе в ногу. Если вам нужно в хуках жизненного цикла компонентов сбрасывать Стейт сторы значит вы свернули куда-то не туда

Maksym-Anisimov Автор вопроса

Как только я понял что у меня есть эта проблема, я сразу сказал себе что я выстрелил себе в ногу) Поэтому и написал сюда, может есть быстрое решение, что бы не переписывать много

Со старой нет быстрых решений, за это её и не любят

Не легче ли просто локально на уровне компонента дергать данные каждый раз, без вьюкса?

Вьюкс предразумевает глобальный стейт, а в вашем случае это просто апи который дергается на двух страницах, и тут нету смысла объединять это в стор. Вы тут не выигрываете ничего, и тем более вы сбрасываете его при удалении компонента

Maksym-Anisimov Автор вопроса

Если писать с нуля - легче :) Исторически получилось так что один из компонентов был завязан на стору, потом появился второй который с такой же логикой, но немного другой, переписывать долго под локальное состояние, поэтому осталась подвязка к сторе у обоих с надеждой на ресет. Как то так

Ну тут тогда на ваше усмотрение, либо поддерживать не очень хорошую архитектуру которая будет возможно еще больше разрастаться, либо сделать по красоте =)

Maksym-Anisimov Автор вопроса

В данный момент нету времени переписывать, поэтому решил спросить идеи для быстрого фикса. Если бы было всегда время переписывать у всех были бы идеальные решения всегда. Я впринципе сделал костыль, но думал может что то поадекватнее будет

Лучше сделать костыль, так как все равно в будущем код будет переписан) Главное что-бы бизнес задача была решена в данном случаи 🙂

Maksym-Anisimov Автор вопроса

Да, тут согласен с вами, любое решение без локального состояние будет костыльным, спасибо. Просто не хочется что бы костыль был супер неявным

Просто надо прокомментировать в коде этот момент и оставить как тех долго и все будет кул )

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта