Re[2]: Глобальное состояние приложения - хорошая ли идея?
От: Shmj Ниоткуда  
Дата: 06.09.25 15:00
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>А почему просто не сделал глобальный Flutter Block (AppBlock)?

bnk>Вроде как это и есть вполне типичный паттерн использования (типа context в react)

Не принято делать единый глобальный для всего приложения state и bloc, так не предусмотрено. Причина:

1. Bloc привязан к куску формы — при изменении связанного state (это небольшой кусочек) — меняется только эта часть формы. А иначе, если у вас всего 1 bloc и 1 state — какое-то маленькое значение внутри state изменится — и вам нужно будет обновлять все глобально, а это уже заметно.

2. Если оставить все как есть (много разных state и bloc), но дополнительно создать обертку, которая как бы объединяет все state-объекты — то проще не станет. Вам нужно после изменения определенных state не забывать вызвать emit для связанных bloc, иначе ничего не обновится. Как бы смысла нет.

Т.е. изначально не предусмотрен такой сценарий и особо его не натянешь.

bnk>Вообще полно таких библиотек: Redux, Zustand, MobX, вагон их


Так там же не обязательно делать глобальный для приложения? Но все не проверял.

bnk>Из минусов global state management — global state должно быть неизменяемым, и каждая "операция" должна создавать новое, чтобы это нормально работало.


Это плохой вариант. Нужно чтобы как раз было изменяемым — но отслеживаемым. Т.е. изменили поле — все UI, которые его используют — обновились сами.
=сначала спроси у GPT=
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.