So I checked official documentation about life cycle hook ngOnDestroy() and I get the fact it gets called on Component or Service, Pipe etc destroy. I also checked this guide here which also explains how to handle such situation correctly: https://brianflove.com/2016/12/11/anguar-2-unsubscribe-observables/
But fundamentally I don't understand when Angular (2+) actually destroys Components? what are practical events that take place that lead to Component destruction?
Sorry I have no computer science background and probably the answer is very obvious.