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

Всем привет) подскажите плиз, только учусь применять на практике onPush.

Получается, если использовать эту стратегию, то при получении данных от бека мы их отрисовывать будем через async pipe, ибо если подписываться то надо будет запускать изменение обнаружений изменений вручную или же это нормальная практика, руками запускать?

20 ответов

20 просмотров

Несовсем понятно, в чем проблема?)

При onPush стратегии автоматически проверка изменений запускается только после изменений @Input, async пайпа внутри себя делает markForCheck когда приходит новое значение, можно запускать и руками через ChangeDetectorRef, если ни первый вариант ни второй вам не подходит

Bulbosaurus- Автор вопроса
Алехандро Крюков
При onPush стратегии автоматически проверка измене...

Понял, спасибо. А что лучше использовать, в плане производительности? Async pipe или же subscribe и внутри него запускать обнаружение изменений. Читал статью, в которой такие слова были сказаны. "Ручной запуск обнаружения изменения не является хаком но вы должны использовать его только в случае необходимости" В случае необходимости. Как я понял, лучше избегать. Вот в чем вопрос

Bulbosaurus
Понял, спасибо. А что лучше использовать, в плане...

та то уже на любителя и по ситуации. Главное, что обнаружение изменений onPush включено, а значит компонента не будет реагировать на каждый чих. Если не какое-то мегасложное приложение, то без onPush даже проще писать, особенно на начальных этапах изучения ангуляра) Не будет заметно разницы

Bulbosaurus
Понял, спасибо. А что лучше использовать, в плане...

буквально сегодня вышло видео от автора их Харькова, который уже давно ничего не выпускал. Там об этом пайпе, примеры его использования и полезные советы https://www.youtube.com/watch?v=DX_6GAx26U0&lc=Ugw4S6oKLosoZTnPmIh4AaABAg.9aAFxs0FSH49aAGc1yZdDd

Evgheni Чернявский
по производительности разницы нет вообще

Однако async является грязным пайпом и отрисовку делает больше одного раза

Rus
Однако async является грязным пайпом и отрисовку д...

так и не делает ничего трудоёмкого при вызове что могло хоть как-то замедлить приложение

Evgheni Чернявский
так и не делает ничего трудоёмкого при вызове что ...

Ну трудоемкость уже зависит от данных которые передаются в пайп

Rus
Ну трудоемкость уже зависит от данных которые пере...

мы же про async пайп говорим, Observable передаётся внутри два ифа на сравнение и вернуть значение из переменной, учитывая что на странице мало кто использует больше чем двух async пайпов то можно пренебречь что это грязный пайп

Evgheni Чернявский
так и не делает ничего трудоёмкого при вызове что ...

на null он не вызывает markForCheck, только когда ему приходит новое сообщение по подписке

Evgheni Чернявский
на null он не вызывает markForCheck, только когда ...

А ты уверен что после одной полной отрисовки он не рисует второй раз?

Rus
А ты уверен что после одной полной отрисовки он не...

исходники ангулара в открытом доступе, можно всегда глянуть что он делает

Rus
А ты уверен что после одной полной отрисовки он не...

В рамках одного синхронного цикла он обновит вьюху один раз.

Alex Inkin
В рамках одного синхронного цикла он обновит вьюху...

Хорошо. Он дергает markforcheck. Есть ли смысл оформлять подписку в компоненте и дергать detectchanges?

Rus
Хорошо. Он дергает markforcheck. Есть ли смысл офо...

Посмотри статью, которую я кинул — это два очень разных метода 🙂

Rus
Хорошо. Он дергает markforcheck. Есть ли смысл офо...

detectChanges по всем канонам ангуляра должен дёргаться, когда компонент выдернут из дерева проверки изменений (с помощью метода detach), т.к. он по сути синхронно запускает проверку изменений компонента и его дочерних компонентов

Vladimir Luvolunov
detectChanges по всем канонам ангуляра должен дёрг...

Не понятны слова «выдернут из дерева проверки изменений»

Rus
Не понятны слова «выдернут из дерева проверки изме...

То есть ангуляр его не будет никак проверять

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта