Transition to Standalone Components
Swipe to show menu
In earlier versions of Angular, every component had to be part of a module. Even the simplest component couldn't exist on its own โ it had to be declared inside an NgModule.
This was like needing a whole kitchen just to make a cup of tea. Sounds bulky, right?
That's why, over time, the Angular team started moving toward simplifying the structure. This led to the introduction of a new approach โ Standalone Components.
What Is a Standalone Component?
A Standalone Component is a component that doesn't require declaration inside a module (NgModule). It's self-contained, meaning it holds all the information about its dependencies within itself.
To create one, you simply add the standalone: true flag inside the @Component decorator and specify any required dependencies using the imports array:
example.ts
Here, adding standalone: true is a special option inside the @Component decorator that tells Angular this component is independent โ it doesn't need to be declared in an NgModule.
Also, we specify a list of external dependencies (imports) that the component requires. In the traditional module-based approach, these dependencies were passed to the module's imports. But when components work without a module, their dependencies need to be declared directly inside the component โ and Angular acts as a module internally for that component.
Why Is Angular Moving Away from NgModules?
NgModules played an important role in large applications:
-
They helped organize the code;
-
They gave control over the scope (visibility);
-
They were useful for optimization.
But over time, it became clear that many of these things can be done at the component level โ more simply and intuitively.
Angular hasn't removed modules โ standalone components just offer a more flexible option.
In other words, standalone components are the modern way to build components without modules. They simplify the structure, make components self-sufficient, and easier to use.
Angular continues to support modules but recommends using standalone components for new code.
1. What does standalone: true do in a component decorator?
2. Why is the imports property needed in a Standalone Component?
Thanks for your feedback!
Ask AI
Ask AI
Ask anything or try one of the suggested questions to begin our chat