вуя?
ты можешь иметь стор даже между вкладками https://github.com/wobsoriano/pinia-shared-state
Можно. Программисты на столько погрузились, что базу забыли)
База: У нас всё выполняется в едином пространстве
Пытаюсь понять как организуется микросервисная архитектура на вуе. Через шину мне не хочется.
> Через шину мне не хочется Почему? Технически создание объекта может быть за пределами Vue. Соответственно количество объектов (в том числе инстансов Vue) может быть не ограничено и они будут доступны внутри любого vue
Если можно расшарить стор то шина наверно не нужна.
Тут все под вечер всера пришли к консенсусу, какой стор Пиньи крутой с pinia-shared-state Давайте ж заглянем под капот этого чуда Создатель плагина решил не заморачиваться и написал обертку вокруг другого пакета - broadcast-channel. Тот использует еще 4 библиотеки, те - еще (но это же создателя этого прекрасного плагина не волнует), и так мы можем даже дойти доEventEmiter3 - той самой шины. Но она не используется, к сожалению. Всё гораздо прозаичней - по setTimeout стейт стора записывается в localStorage, и посылается window.postMessage() об обновлении стора другим сторам-подписчикам. Теперь вспоминаем, что происходит с setTimeout на неактивных вкладках. Троттлинг до 1000ms (в Хроме как минимум). А это значит, потеря реакции на обновление стора при более-менее одновременнной записи стейта, и неконсистентное состояние приложения. Хранение данных в localStorrage - безопасность пошла лесом Надо, кстати, и бэкендерам посоветовать микросервисами так обмениваться информацией - один записал в базу данных что-то, другой ее чекает. Или, чтобы полная аналогия была - один записал в базу, и послал по Кафке мессадж, чтобы другие чекнули. Удобно ж. Куча дополнительного кода вместо простой понятной шины сообщений даже на postMessage(), усложнение на порядок, а то и два. Понятно, что такое "на порядок"? Это значит условного js кода между условно инициацией изменения и получением его в другом месте будет в 10-100 раз больше. И дебаггить моменты типа троттлинга setTimeout-а будет ой как весело. Но, опять же, это же Пинья стор, написанный на коленке без линтера, и волшебный плагин к нему от прекрасного сообщества, - им можно провоцировать написание говнокода своим поклонникам.
Огромное спасибо, случайно посмотрел, как раз до этого искал инфу что лучше использовать пину или vuex, кстати, есть ли такое короткое описание про него?
Pinia - это официальный стейт менеджер для вью, который заменил vuex, vuex постепенно умирает
Как скажешь
Тогда так же можно сказать и о vue, не пишите на нем, просто ванильный js
Pinia стор элементарно заменяется композаблом по функционалу Как ты из ванильного js сделаешь элементарно Vue? Откуда вы все такие остроумные берётесь?
Обсуждают сегодня