браузерная логика, чтобы при переходе не слетали стейты
складывать всё в редакс и доставать оттуда - как минимум одна жизнь потребуется для написания
посмотри в сторону indexDB может он сможет тебе помочь Не понятно только какие данные хранить планируешь, может localstore поможет
нужно хранить прям вообще всё, у меня грубо говоря 10 страниц можно открыть в одной вкладке, в каждой странице кучу всякого накликать, и таких вкладок должно быть несколько
https://habr.com/ru/companies/rambler_and_co/articles/422545/
Ну возьми effector/reatom/mobx или даже простой react-context что касается редакса, там если ты асинхронщину в него не тащищ, то в принципе кода немного (я про redux-toolkit)
если я в двух вкладках открою две одинаковые страницы, то у меня для каждой из страниц и для каждого компонента в каждой странице должны быть свои данные, то есть в каждом месте где я что-то открываю или закрываю или меняю, я должен изменять стейт страницы и хранилище это решение будто бы не самое оптимальное, потому что такое писать долго, будто бы должны быть попроще варианты
ну два СПА одновременно запущенных будет у каждого свое состояние например в effector
стейт менеджеры разве два одновременно запущенных СПА могут сделать?
не понял? ты же вроде хочешь что бы у тебя несколько одновременно запущенных приложений было? или ты хочешь что бы у тебя каждый экземпляр компонента работал со своим отдельным хранилищем данных?
наверное правильнее формулировка "хочу чтобы у меня каждый экземпляр компонента работал со своим отдельным хранилищем данных"
почти все стэйт-менеджеры позволяют динамически создавать модули/слайсы/реддюсеры (ну или как там они у них называются) логика такая: 1) компонент создается и в useEffect вызывает создание в сторе экземпляр модуля для своей работы НА ОСНОВЕ ШАБЛОНА МОДУЛЯ 2) компонент работает со своим экземпляром модуля стора. 3) компонент при размонтировании удаляет созданный для своей работы модуль стора
совершенно не могу найти в доках о динамическом создании модулей/слайсов/редюсеров
А чем здесь не подходит useReducer()?
вроде это https://medium.com/@matheusmm/redux-injecting-reducers-dynamically-e4e193eaa905
можно и так. Ну в связке с контекстом естественно
потом каким-то образом определять из какого редюсера доставать инфу, а доставать из него придётся вообще каждое значение + переписывать обновление каждого значения, в целом это и ведёт к тому о чём я говорил, что уйдёт куча времени на написание, хотелось бы чтобы существовал какой-то автономный стейт ахах, которому написал в юзэффекте стейты.запомнитесь_в_текущем_урле() [всегда когда обновляетесь]
определять элементарно в общем то при монтировании компонента в котором в useEffect создаешь модуль стора записываешь ему например в состояние имя модуля имя модуля либо генерируется при создании модуля либо что то типа "module name template" + genUUID() ну и пользуешь это имя для доступа к модулю
Бро, напиши в описании своего профиля +42777
@THIS_IS_YOUR_NICKNAME тут спамер
Это какая то новая разводка?
Какой скам блять?
я абсолютно согласен с тем что всё это можно написать и всё абсолютно понятно, дело только во времени которое на это улетит
большой проект на стейтах, за пару часиков только в голове понятно станет каким образом построить эту архитектуру
я так мелько глянул тред, может я так понял суть проблелмы, но если у тебя редакс то может стоит посмотреть https://redux-toolkit.js.org/api/createEntityAdapter ?
ну смотри ты же можешь сделать пустой проект, на котором отработать inject модуля так сказать прототип и вот тебе когда станет понятно как модули инжектировать ты сможешь это внедрить в основной проект
это факт, я вообще нисколько не против реализации с редюсерами и не против научиться
Там кстати можно не только инжектировать модули например можно использовать контекст, но не оборачивать все приложение а создавать индивидуальный контекст для компонента
Обсуждают сегодня