The Angular components don't draw a clear separation between properties and states like React does, but we can still use the same mental model. A component renders some data. If the data is mutated by the component, we are talking about a smart component. If the component only reads the data, we are talking about a dumb component.
Just like we did in the React example, we have organized our project using multiple directories in a way that allows us to have very clear differentiation between smart and dumb components. The components directory contains only dumb components while the pages directory contains smart components.
In Angular, the dumb components, most of the time, don't require life cycle hooks, ...