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

Хотела спросить, кстати. Можно ли иметь общий стор между разными instance

вуя?

14 ответов

10 просмотров

ты можешь иметь стор даже между вкладками https://github.com/wobsoriano/pinia-shared-state

Можно. Программисты на столько погрузились, что базу забыли)

База: У нас всё выполняется в едином пространстве

Daria-Shuleko Автор вопроса
Master Craftsman
Можно. Программисты на столько погрузились, что ба...

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

Daria Shuleko
Пытаюсь понять как организуется микросервисная арх...

> Через шину мне не хочется Почему? Технически создание объекта может быть за пределами Vue. Соответственно количество объектов (в том числе инстансов Vue) может быть не ограничено и они будут доступны внутри любого vue

Daria-Shuleko Автор вопроса
Master Craftsman
> Через шину мне не хочется Почему? Технически со...

Если можно расшарить стор то шина наверно не нужна.

Daria Shuleko
Если можно расшарить стор то шина наверно не нужна...

Тут все под вечер всера пришли к консенсусу, какой стор Пиньи крутой с 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

Алексей Сулименко
Тогда так же можно сказать и о vue, не пишите на н...

Pinia стор элементарно заменяется композаблом по функционалу Как ты из ванильного js сделаешь элементарно Vue? Откуда вы все такие остроумные берётесь?

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта