DEV Community

Cover image for Aplicando lazy loading a tu app
Derlys for kikstart.dev

Posted on • Edited on

Aplicando lazy loading a tu app

Requisitos

Haber hecho tu app básica, puedes tomar el ejemplo del tutorial # 1 de la serie "Introducción a Kikstart UI"

💡Tip

La manera en que generamos el siguiente componente
es mucho más eficiente ya que crea el componente con su
respectiva ruta y módulo.

Paso # 1

Creamos el componente posts con su módulo y rutas.

1: Ejecuta el siguiente comando:

ng g module posts --route posts --module app
Enter fullscreen mode Exit fullscreen mode

Paso # 2

Configuramos nuestra app para utilizar las colecciones del proyecto en firebase.

💡Recuerda

Antes de hacer este paso debiste haber instaladong add @angular/fire y configurar tu environment, como en el tutorial # 4 de la serie 1.

1: Busca la rutasrc/app.module.ts y escribe lo siguiente en la parte superior:

import {AngularFireModule} from "@angular/fire";
import {environment} from "../environments/environment";
import {AngularFirestoreModule} from "@angular/fire/firestore";
Enter fullscreen mode Exit fullscreen mode

2: Luego en el mismo archivo en el array de importscoloca lo siguiente:

 AngularFireModule.initializeApp(environment.firebase),
 AngularFirestoreModule
Enter fullscreen mode Exit fullscreen mode

Paso # 3

Mostrar la ruta

1: Busca la ruta src/app/app.component.tsen el array de link agrega un label más.

 links: UiLink[] = [
    { label: 'Home', path: '/' },
    { label: 'About', path: '/about' },
    { label: 'Contact', path: '/contact' },
    { label: 'Blog', path: '/posts' },
  ];
}
Enter fullscreen mode Exit fullscreen mode

Paso # 4

Creamos el servicio y lo usamos en nuestro componente.

1: Ejecuta el siguiente comando:

 ng g service posts/posts --skip-tests
Enter fullscreen mode Exit fullscreen mode

2: Configura el servicio en el archivo posts.service.ts y agrega lo siguiente en la parte superior:

import { Observable } from 'rxjs';
import { AngularFirestore } from '@angular/fire/firestore';
import { collectionData, docData, fromCollectionRef } from 'rxfire/firestore';
Enter fullscreen mode Exit fullscreen mode

💡Recuerda

Para cada paquete de firebase que utilices debes instalarlo en este caso usamos rxfire entonces lo instalamos.

3: Luego en el mismo archivo en la clase coloca lo siguiente:

export class PostsService {
  blogs: Observable<any[]>;
  collectionRef: any;

  constructor(private firestore: AngularFirestore) {
    this.collectionRef = this.firestore.collection('courses');
    this.blogs = collectionData(this.collectionRef.ref, 'id');
  }
}
Enter fullscreen mode Exit fullscreen mode

Paso # 5

Hacemos la lógica para usar nuestro servicio.

1: Busca la ruta src/app/posts.component.ts coloca lo siguiente en la parte superior:

import { PostsService } from './posts.service';
import { Observable } from 'rxjs';
Enter fullscreen mode Exit fullscreen mode

2:Luego en el mismo archivo en la clase coloca lo siguiente:

export class PostsComponent implements OnInit {
  courses$: Observable<any>;

  constructor(public service: PostsService) {
    this.courses$ = this.service.blogs;
  }

  ngOnInit(): void {}
}
Enter fullscreen mode Exit fullscreen mode

Paso # 6

Finalmente renderizamos los datos en nuestro componente

1: Busca la ruta src/app/posts/posts.component.html y pega lo siguiente:

  <div *ngIf="courses$ | async as posts">
  <div *ngFor="let post of posts">
    <img src="{{ post.author_img }}" />
    <a [routerLink]="['/posts', post.id]">
      <h2>{{ post.title }}</h2>
    </a>

    <h3>{{ post.description }}</h3>

    <h4>{{ post.author_name }}</h4>
  </div>
</div>
Enter fullscreen mode Exit fullscreen mode

Resumen

Generamos un componente post con su módulo y ruta,creamos su servicio y lo usamos en el templete.

Gracias por seguir este tutorial, si tienes algun comentario hazlo a través de mi twitter y con gusto te contestare.

Top comments (0)