Skip to content
  • Home
  • Search
  • Tools
  • About
  • Terms of Service Agreement
  • Log In
  • Guest

Angular From Scratch Tutorial – Step 2: Components

Posted on March 6, 2021May 5, 2025 By Andre Dias
angular, javascript

Angular From Scratch Tutorial – Index
PREVIUS: STEP ONE
NEXT: Angular From Scratch Tutorial – Step 3: Binding

 

Table of Contents

  • Note
  • Target
    • Source Code/Download
  • What is a Compoment
    • Commands to create component
  • Creating the “original-init-page” component 
    • Routing – URL setup
      • Testing
    • Moving the content from the index.html page to the new component
      • Testing again
  • NEXT

Note

The purpose of this page in this tutorial series is to provide a very fast approach that is useful for revisions when you have already dealt with Angular, but after an absense of using it, it turns necessary to do a “disk swap” bringing from “disk” to your “memory” again. 🙂

If it is your first Angular approach, or you are a newbie, it is recommended to go first to the Angular’s documentation. After, this page will serve you as a summary for fast referencing and revision.

Target

Creating a new component, to where the current initial page content will be moved to.
Providing routing to the moved content creating a link to it.

Source Code/Download

For more details, the source code may be found on GitHub, “step3” tag (includes step1 up to step3).

 

What is a Compoment

Using a simple way of defining things, we may see a component as a chunk of script belonging to its respective HTML.
I like to think about Angular as a segmented tool to bind HTML (the template) and its scripting code (the component) putting them together under the same folder, instead of having everything together and a huge code to dig in, up and down.

Each part takes care of a specific feature, split into HTML and its script code, making things easier.

The HTML code is called “template”.
The script part is the “component”.
Between, there is the interaction provided by “bindings”.

 

 

Excellent more detailed information at Angular’s documentation.

Commands to create component

ng generate component new-cmp
or
ng g component new-cmp
or ng g c new-cmd

Creating the “original-init-page” component 

The purpose of a component is perfect to our purposes of  moving the content of the initial page to another place to be referenced by a specific URL.

Do:

ng g c original-init-page

 

 

 

 

Routing – URL setup

Target: we desire to access the content of the component.
Solution: we need to provide routing.

Change the app.app-routing.module.ts file to be like this:

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { OriginalInitPageComponent } from './original-init-page/original-init-page.component';

const routes: Routes = [
  {path: '',   redirectTo: 'index',  pathMatch: 'full'},
  {path: 'ori-init-page', component: OriginalInitPageComponent }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

First you import the new component:
import { OriginalInitPageComponent } from ‘./original-init-page/original-init-page.component’;
After, it is created the default page routing:
{path: ”,   redirectTo: ‘index’,  pathMatch: ‘full’},
Then, the new component routing:
{path: ‘ori-init-page’, component: OriginalInitPageComponent }

Testing

Pointing to:
http://localhost:4200/

shall return the same thing, but pointing to:
http://localhost:4200/ori-init-page

returns the new component’s template content, appending to the button of the initial’s page content:

Moving the content from the index.html page to the new component

Go to the app.component.html and cut all the content except this last line:

<router-outlet></router-outlet>
and replaces the original-init-page.component.html content.
The remaining content of app.component.html comes to this:

containing just:

<router-outlet></router-outlet>
And the original-init-page.component.html page contains everything except the “router-outlet” markup.
This markup is a placeholder that marks where the router will render its output filtered by the Routes that were configured above.
Now, copy the “title” from app.components.ts to original-init-page.component.ts.
Check the images below:
app.components.ts

original-init-page.components.ts

 

Testing again

Pointing to:
http://localhost:4200/

you shall get a blank page, without content, but pointing to:
http://localhost:4200/ori-init-page

it is returned the original page initial content.

 

 

NEXT

Angular From Scratch Tutorial – Index

Angular From Scratch Tutorial – Step 3: Binding

PREVIUS: STEP ONE

Andre Dias
Andre Dias

Brazilian system analyst graduated by UNESA (University Estácio de Sá – Rio de Janeiro). Geek by heart.

Post navigation

❮ Previous Post: Angular From Scratch Tutorial – Step 1
Next Post: Angular From Scratch Tutorial – Step 3: Binding ❯

Search

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Filter by Categories
angular
bootstrap
browser
computer science
container
data persistence
database
devops
editors
hardware
health
hosting
info
internet
it
java
javascript
network
node.js
play
protocol
security
self-help
selfhelp
server
services
soft
software engeneering
sql
support
Systems
techs
Uncategorized
versioning
web
web design
windows
wordpress

Recent Posts

  • Angular From Scratch Tutorial – Step 9: Modal
  • Angular From Scratch Tutorial – Step 8: Miscellany
  • Angular From Scratch Tutorial – Index
  • angular: Reading JSON files
  • NODE.JS: SEQUELIZE: MVC Project – 4TH STEP

Categories

  • angular (19)
  • bootstrap (6)
  • browser (4)
  • computer science (4)
  • container (1)
  • data persistence (2)
  • database (11)
  • devops (1)
  • editors (1)
  • hardware (4)
  • health (2)
  • hosting (1)
  • info (1)
  • internet (2)
  • it (1)
  • java (13)
  • javascript (32)
  • network (6)
  • node.js (1)
  • play (1)
  • protocol (1)
  • security (4)
  • self-help (1)
  • selfhelp (1)
  • server (2)
  • services (1)
  • soft (1)
  • software engeneering (1)
  • sql (1)
  • support (2)
  • Systems (1)
  • techs (3)
  • Uncategorized (2)
  • versioning (6)
  • web (1)
  • web design (5)
  • windows (3)
  • wordpress (4)

Copyright © 2025 .

Theme: Oceanly by ScriptsTown

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
Cookie SettingsAccept All
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDurationDescription
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
SAVE & ACCEPT