Components In Angular
Tags: webdev, beginners, tutorial, angular
Published: 2022-06-20 13:55:41

Hi readers 👋, thank you for spending few minutes of the day, reading my article. 

I have recently started learning Angular and as the heading says, this is a beginner level series. As I proceed with my learning, I shall come up with some more articles and projects (if you see me away for more than 2 weeks, I probably need your help and motivation 🙏🏽). 

In this article we will be covering basics of Components.

## What is a Component?
Component are the most essential and important building blocks of Angular. It consists of:
1. An HTML file that declares what goes on the page (also called the template of the component)
2. A typescript class that defines behavior (also known as the component class)
3. A CSS selector that defines how the component is used

## Creating a Component
1. Have Angular CLI installed. If not, use command `npm install -g @angular/cli` to install.
2. Create an Angular workspace using the command `ng new <app-name>`
3. Run `ng generate component <component-name>` to create a component
4. If it runs successfully, you should see:
   - A folder named after the component
   - A component file
   - A template file
   - A CSS file
   - A testing specification file

This is what your workspace should look like, after running the above command 👇
![Component description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/al7xlogh178rghi3huzb.png)

Alternatively, you can also create a component manually, follow [this tutorial](https://angular.io/guide/component-overview#creating-a-component-manually) to know more.

## Getting into details

1. Open the file `app.component.ts` under your newly created component folder
It should be similar to 👇

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p5oaxd3figsvkkqkkpk2.png) 

2. @Component is a [decorator](https://docs.angularjs.org/guide/decorators#:~:text=Decorators%20are%20a%20design%20pattern,modified%20prior%20to%20its%20usage.) that  identifies the class immediately below it as a component class, and specifies its metadata. The metadata for a component tells Angular where to get the major building blocks that it needs. The @Component decorator, can be used to set the values of different properties, some of which are:
   - Template and TemplateURL
   - Provider
   - Selector

3. Template and TemplateURL- A template is the part of the component which gets rendered on the page. A template can be created in two ways:
   - Inline template: Can be created using single or double quotes
   - TemplateUrl property: Helps us in setting complex templates that are created in an HTML file
4. Provider - Providers are passed as an array, and it helps in adding services in a component. 
5. Selector - It tells Angular to create and insert an instance of this component wherever it finds the corresponding tag in template HTML. In simple terms, a component can be used using this selector.

Thank you for reading till the end. In the next article, we will be cover Data Binding basics.

If you have any comments for me, please drop them below or reach out to me at [@HaimantikaM](https://twitter.com/HaimantikaM)