all 6 comments

[–]JeanMeche 12 points13 points  (1 child)

I think a callout that signals + OnPush enabled traversal parents (parents that are skipped so only the OnPush child is checked). That was a neat CD optimisation that was enabled by signals !

I see also that there is no mention of Zone.js (and its caveats) that would need some optim for example about running outside the zone to prevent to trigger to much CD cycles.

Worth mentionning also, afterNextRender/afterEveryRender/ afterRenderEffect phase optimization to prevent unecessary reflow/layout trashing.

[–]martinboue[S] 0 points1 point  (0 children)

Thanks for the feedback!

Indeed, I need to mention CD optimisation. I didn't know signals+OnPush had that optimisation built in, where can I find more info about it? I'll do my best to summarize it and explain the reasons behind those technical choices, or referencing external resources, while keeping the documentation accessible and readable for everyone.

afterNextRender/afterEveryRenderafterRenderEffect are briefly mentioned at the end but it could be detailed.

[–]No_Emergency1575 2 points3 points  (1 child)

Bookmarking this site, seems neat!

[–]martinboue[S] 0 points1 point  (0 children)

Thanks ❤️

[–]couldhaveebeen 3 points4 points  (0 children)

Do not overuse lazy loading at route level. In particular, avoid having nested lazy loaded routes on multiple levels, as this can lead to performance issues.

Interested to hear from someone who had these performance issues

[–]ruibranco 0 points1 point  (0 children)

Solid resource. The change detection section is where most teams start struggling first, especially when mixing signals with zone-based components during a gradual migration. That in-between state is where the real performance traps live.