Ionic

Add custom component – Ionic 5

Share your learning

Hi, Buddy, Today we are going to learn how to add custom component in the ionic 5 app. Sometimes we want to use some UI snippets over multiple pages. So, custom components are the best way to do so.

Generate Custom Component

To generate the component by ionic CLI, run the following command.

ionic generate component components/my-component

It will generate MyComponent files in the app/components directory. Normally it adds the components files in the app directory but we want to keep all components in a separate directory that’s why I used the components directory while generating the new component.

Add a file called share-component-module.ts in the components directory. Now the directory structure will look like below in the screenshot.

Edit component module file

Now open the share-component.module.ts file and add the my-component to it. We need to add it to the declaration array and exports array. You can copy paste below code to this file.

import { CommonModule } from '@angular/common';
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { IonicModule } from '@ionic/angular';
import { MyComponentComponent } from './my-component/my-component.component';

@NgModule({
    declarations: [MyComponentComponent],
    schemas: [ CUSTOM_ELEMENTS_SCHEMA ],
    imports: [
        CommonModule,
        IonicModule
    ],
    exports: [MyComponentComponent]
})

export class ShareComponentModule {}

Now, we are ready to go. We can use our component anywhere in the app. Like if we have a tab based app and want to add our component in the tab1 page. Then we need to include our share-component-module to the module file of the tab1 page. Like below.

import { IonicModule } from '@ionic/angular';
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { Tab1Page } from './tab1.page';
import { Tab1PageRoutingModule } from './tab1-routing.module';
import { ShareComponentModule } from 'src/app/components/share-component.module';

@NgModule({
  imports: [
    IonicModule,
    CommonModule,
    FormsModule,
    Tab1PageRoutingModule,
    ShareComponentModule
  ],
  declarations: [Tab1Page]
})
export class Tab1PageModule {}

Now, we can use my-component on the tab1 page. If we are not using lazy loading then we can include our share-component-module to app-module file directly. Here is how we can use the component on this page.

<my-component></my-component>

It will not only load the my component html snippet here but also load the my-component ts file working if something is there. Like if we are fetching some data through the api to my-component ts file and then view it to our html page. Everything will work in the same way on another page also where this component will be included.

Hope you find this article useful. If you have any query or suggestion plz comment below.

Satpal

Recent Posts

How to Switch PHP Versions in XAMPP Easily: Managing Multiple PHP Versions on Ubuntu

Today we are going to learn about managing multiple PHP versions on ubuntu with xampp.…

1 year ago

How to Use Coding to Improve Your Website’s SEO Ranking?

Let's understand about how to use coding to improve your website's SEO. In today’s computerized…

1 year ago

Most Important Linux Commands for Web Developers

Let's understand the most important linux commands for web developers. Linux, as an open-source and…

1 year ago

Top 75+ Laravel Interview Questions Asked by Top MNCs

Today we are going to discuss top 75+ Laravel interview questions asked by top MNCs.Laravel,…

1 year ago

Mailtrap Integration for Email Testing with Laravel 10

Today we will discuss about the Mailtrap integration with laravel 10 .Sending and receiving emails…

1 year ago

Firebase Cloud Messaging (FCM) with Ionic 6: Push Notifications

Today we are going to integrate FCM (Firebase Cloud Messaging) push notifications with ionic application.Firebase…

1 year ago