Too Long; Didn't Read
All modern frameworks are designed to help implement UI composition with components. Naturally you will have a parent-child hierarchy and the framework should provide a way to communicate between the child and parent. Angular provides two major ways of communication — through input/output bindings and services. I prefer using the first method for the <a href="https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0#8ce5">stateless presentational components</a> while I employ DI for the <a href="https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0#8ce5#c27f">stateful container components</a>.