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

Парни давайте вскроем тему, есть много архитектур где есть 1

state на весь экран. Когда он обновляется, весь экран перерисовывается. Вам не кажется что это плохо? На экране могут быть разные данные, они обновляются с разной скоростью. Страдает производительность. Получается правило 1 стейт на экран плохое.

5 ответов

9 просмотров

для того чтобы это избежать, считают Diff

Там много всего веселого дающего по производительности. Особенно когда это всё оборачивается Rx'ом. На каждый чих создаётся хуйлиард объектов. Но как сказали выше - вьюху лучше по diff'ам обновлять.

Ну глобально да. Но во первых андроид и сам уже имеет что то диффать, во вторых можно маппить результат на view сущности и делать .distinct(), в третьих на практике это не такая уж и большая проблема. Ну либо использовать UI либы которые уже умеют делать такой дифф)😈

В самом крайнем случает можно использовать кеширующие обертки над view

Зачем один Стейт на экран? Если экран сложный, надо бить на несколько стейтов и несколько Вью

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

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

а через 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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
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
Карта сайта