
Max Koretskyi



Signals in Angular: deep dive for busy developers
Building complex user interfaces is a difficult task. In modern web applications, UI state is rarely comprised of simple standalone values. It’s rather a complicted computed state that depends …


Optimization techniques – OnPush strategy
OnPush CD strategy Angular implements two strategies that control change detection behavior on the level of individual components. Those strategies are defined as Default and OnPush: export enum ChangeDetectionStrategy …


Running change detection – Components tree
Components tree With component based approach in web applications, composition is achieved by including child components in templates. For this reason, we can think of an Angular application as …


Running change detection – Autorun with zones
Autorun with zones Change detection (rendering) in Angular is usually triggered completely automatically as a result of async events in a browser. This is made possible by utilizing zones …


Debugging techniques – Debug element
Debug element (node) DebugElement utility class is commonly used during unit testing to represent a DOM node and its associated entities (directives etc.). Angular docs shows variations of its …


Running change detection – Manual control
Manual control Even though Angular runs change detection automatically, sometimes you may need to run change detection manually. This would be the case if a change detector of the …


Debugging techniques – Chrome DevTools
Chrome DevTools Sometimes you may notice a change detection run without seemingly no apparent cause for the run. Finding the root cause might prove to be difficult. In Angular, …


Expression changed error – Causes and workarounds
Causes and workarounds We know that the error happens when the values returned by an expression during the regular change detection run and the following verification cycle are different. …


Change Detection Big Picture – Unidirectional data flow
Unidirectional data flow Angular enforces so-called unidirectional data flow from top to bottom. The essence of this convention is that data flows from the parent to the child, but …


Expression changed error – Overview
Overview One of the most frequent Angular related topics on StackOverflow is about the infamous ExpressionChangedAfterItHasBeenCheckedError error. Usually these questions come up because developers do not really understand why …


Debugging techniques – Global utils
Global utils Debugging is an essential skill for software engineers. Some say that it’s twice as hard as writing the code in the first place. Hence, it’s important for …


Change Detection Big Picture – Rendering cycle
Rendering cycle Let’s take a quick look at the interaction between different layers in a typical Angular web application and the job they have. Let’s start with the high-level …