Size: a a a

Советский Angular

2021 May 01

ЕУ

Евгений Удалов... in Советский Angular
я не очень улавливаю конкретный кейс, в том и дело. юзаешь онпуш и bs, и все чудесным образом рендерится у тебя в чайлдах
источник

SS

Stanislav Sokolov in Советский Angular
Но в следующий тик ангулар найдёт все помеченные грязные и дёрнет детект
источник

MA

Maxim Afanasev in Советский Angular
Так а когда он случится - этот тик?
источник

MA

Maxim Afanasev in Советский Angular
Это зона должна отработать
источник

IE

Igor' Ember in Советский Angular
Нужен был загооловок “Как писать декларативный observable код в рамках событийно-ориентированного языка”
источник

IE

Igor' Ember in Советский Angular
> чудесным образом
с божьей помощью!
источник

SS

Stanislav Sokolov in Советский Angular
Вот тут я что-то не уверен, должен и без зоны если есть грязные
источник

IE

Igor' Ember in Советский Angular
+
источник

ЕУ

Евгений Удалов... in Советский Angular
троллить и я умею
источник

MA

Maxim Afanasev in Советский Angular
А вот нет. У меня недавно был кейс, когда ничего не обновлялось, хотя значения эмитились и в асинк пайп попадали. А всё из-за того, что дом эвент вне зоны обрабатывался. Решилось только через detectChanges.
источник

ЕУ

Евгений Удалов... in Советский Angular
Переслано от Igor' Ember
Не совсем понимаю ответ
Вопрос был про практический use case  
Если тебе нужно обновить компонент с  OnPush, то почему просто не вызывать detectChanges
Какое преимущество у markForCheck по сравнению с detectChanges с практической точки зрения? Вот в реальной работе был хотя бы один случай, когда нужно было бы испльзовать именно markForCheck и  detectChanges не подходил бы ?
источник

ЕУ

Евгений Удалов... in Советский Angular
Переслано от Serega Carbon
с OnPush то как-раз всё и апдейтится) Просто прикручиваешь BehaviourSubject а в темплейте юзаешь асинк пайпу и всё)
источник

ЕУ

Евгений Удалов... in Советский Angular
Переслано от Igor' Ember
Ты же понимаешь, что detectChanges - это единственный способ вызвать изменения только в рамках одной ветки (а не всего приложения) ? Если ты его никогда не используешь, значит ты постоянно перерендериваешь все приложение даже тогда, когда в этом нет смысла (любые другие события триггерят appRef.tick() )
источник

ЕУ

Евгений Удалов... in Советский Angular
Переслано от Igor' Ember
У тебя небось пет проект на несколько десятков компонентов, вот и не было проблем
источник

ЕУ

Евгений Удалов... in Советский Angular
Переслано от Igor' Ember
Я только что сказала тебе, почему detectChanges лучше использовать (и конкретный use case). В ответ ты лишь пишешь “ну, у нас так принято, все работает, ыыы”
Ясно.
источник

ЕУ

Евгений Удалов... in Советский Angular
Переслано от Евгений Удалов...
вообще ни разу не единственный
источник

ЕУ

Евгений Удалов... in Советский Angular
Переслано от Igor' Ember
Например?
источник

ЕУ

Евгений Удалов... in Советский Angular
Переслано от Евгений Удалов...
выше Вячеслав ответил же. вовсе не обязательно дергать detect changes руками
источник

IE

Igor' Ember in Советский Angular
Видимо, у тебя в приложении эти тики постоянно происходят на пустом месте, поэтому и не замечаешь проблем от  markForCheck
источник

SS

Stanislav Sokolov in Советский Angular
Может, там же все в зоне и постоянно что то в ней крутится.
источник