Size: a a a

Dart & Flutter по-русски

2020 July 10

F

Fox in Dart & Flutter по-русски
Есть чего нового про Navigator 2.0?
источник

RK

Ruslan Kunaev in Dart & Flutter по-русски
Дмитрий Щербаков
Смысл блока в том чтобы UI (виджет) знал от чего ему строится . Единое состояние для конкретного экрана
Это состояние не обязательно должно быть глобальным
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
В зависимости от стейта мы выводим то или иное или третье
источник

n

neikist in Dart & Flutter по-русски
Дмитрий Щербаков
Смысл блока в том чтобы UI (виджет) знал от чего ему строится . Единое состояние для конкретного экрана
Смысл блока в отделении бизнес логики от представления. Это даже в названии паттерна записано. Бизнес логика может быть не то что для экрана, для небольшого кусочка экрана отдельная.
источник

RK

Ruslan Kunaev in Dart & Flutter по-русски
neikist
Смысл блока в отделении бизнес логики от представления. Это даже в названии паттерна записано. Бизнес логика может быть не то что для экрана, для небольшого кусочка экрана отдельная.
Вопрос глобального стейта не философский, это вопрос оптимизации, когда у вас сотни экранов хранить стейты для всех одновременно глобально не очень хорошая идея
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
neikist
Смысл блока в отделении бизнес логики от представления. Это даже в названии паттерна записано. Бизнес логика может быть не то что для экрана, для небольшого кусочка экрана отдельная.
Именно. Ничего не мешает в блоке делать Стейт под конкретный виджет
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
1 блок может брать стейты из другого и так далее
источник

n

neikist in Dart & Flutter по-русски
Ruslan Kunaev
Вопрос глобального стейта не философский, это вопрос оптимизации, когда у вас сотни экранов хранить стейты для всех одновременно глобально не очень хорошая идея
А я и не спорю. Я как раз к тому что блок никак не регламентирует что именно он обслуживает. Это вполне может быть цепочка экранов от корзины до завершения покупки например. И с тем же успехом блок который связывает на экране списка товаров только два виджета, корзину и кнопки добавления в корзину. Или и вовсе два блока, один на кнопки добавления в корзину, второй на виджет значка корзины. Работающие с одним репозиторием.
источник

n

neikist in Dart & Flutter по-русски
Но лучше чтобы блок был как можно проще и меньше, для разделения ответственностей. Да и для оптимизации конечно.
источник

RK

Ruslan Kunaev in Dart & Flutter по-русски
Дмитрий Щербаков
1 блок может брать стейты из другого и так далее
Если вы это глобально сделаете, куча стримов слушающие кучу других стримов, которые в итоге никто не слушает будет не очень хорошо
источник

RK

Ruslan Kunaev in Dart & Flutter по-русски
Ruslan Kunaev
Если вы это глобально сделаете, куча стримов слушающие кучу других стримов, которые в итоге никто не слушает будет не очень хорошо
У вас малейшее изменение будет вызывать кучу сайд эффектов которые возможно вообще сейчас не нужны
источник

RK

Ruslan Kunaev in Dart & Flutter по-русски
Если уж мы говорим именно про паттерн, как он есть, в нем кроме как sinks for input, streams for output ничего не регламентировано
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
Для этого есть equtable, который позволяет не брать лишнее)
источник

RK

Ruslan Kunaev in Dart & Flutter по-русски
Вопрос глобального стейта, опять же, повторюсь, не философский, руководствоваться надо задачей. Если вам нужен один блок на всех экранах, делайте этот, именно этот стейт глобальным, потому что при таком раскладе пересоздание экземпляров на каждый путь обойдется дороже чем держать его просто в памяти. (а может и нет, кстати, не замерял)
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
Смотря что хранится в этом экземпляре
источник

RK

Ruslan Kunaev in Dart & Flutter по-русски
Если вам нужен блок обслуживающий один экран из 150, держать его постоянно в памяти идея не самая лучшая
источник

EE

Evgenii <JonFir&g... in Dart & Flutter по-русски
Дмитрий Щербаков
1 блок может брать стейты из другого и так далее
Но только это бизнес логик компонент, а не Стейт компонент)
источник

ДЩ

Дмитрий Щербаков... in Dart & Flutter по-русски
Т.е. использовать блок и не использовать стейты?) Какой тогда в нем смысл
источник

n

neikist in Dart & Flutter по-русски
Дмитрий Щербаков
Т.е. использовать блок и не использовать стейты?) Какой тогда в нем смысл
Отделение бизнес логики от представления. Как и задумывалось авторами.
источник

n

neikist in Dart & Flutter по-русски
Блин, довольно забавно участвовать в спорах по флаттеру имея в активе только штуки три кодлабы повторенных да четверть прочитанной "Flutter in action"))
источник