Introducción a Angular y Fundamentos
Aprende Angular 17
Creando tu primer proyecto en Angular
Implementando estilos
Mostrando elementos
Property Binding en Angular
Event Binding: click y doble click
Event binding: keydown
Modelo de reactividad con Signals
Creando un Signal en Angular
Estructuras de control en Angular
Directivas de control
Uso de ngFor
ngFor para objetos
Update Tasks
Uso de ngIf
Uso de ngSwitch y ngSwitchDefault
Controlando un input
Manejo de formularios en Angular
Alistando tu aplicación para producción
Estilos al modo Angular
Clases en Angular
Editing mode
Estados compuestos con computed
Usando effect para localStorage
Uso de ngbuild
Despliegue con Firebase Hosting
Nueva sintaxis en Angular
Directivas @For, @switch
Migrando a la nueva sintaxis de Angular v17
Componentes Reutilizables y Comunicación
Construyendo un e-commerce en Angular
Componentes en Angular
Mostrando los componentes
Angular DevTools
Uso de Inputs en Angular
Uso de Outputs en Angular
Componentes para Producto
Ciclo de vida de los componentes
Ciclo de vida de componentes
Ciclo de vida de componentes: ngOnChanges
Ciclo de vida de componentes: ngOnInit
Detectando cambios en los inputs
Evitando memory leaks con ngDestroy
Audio player con ngAfterViewInit
Creando la página "about us" o "conócenos"
Mejorando la interfaz del producto
Creando componente de productos
Creando el Header
Creando el carrito de compras
Comunicación padre e hijo
Calculando el total con ngOnChanges
El problema del prop drilling
Reactividad con signals en servicios
Entendiendo la inyección de dependencias
Integración y Datos
Obteniendo datos una REST API
Importaciones cortas en Typescript
Pipes en Angular
Construyendo tu propio pipe
Utilizando librerías de JavaScript en Angular
Conociendo las directivas
Deployando un proyecto en Vercel
Enrutamiento y Navegación
Ruta 404
Uso del RouterLink
Vistas anidadas
Uso del RouterLinkActive
Detalle de cada producto
Obteniendo datos del producto
Galería de imagenes
Detalle de la galería
Perfeccionando tu e-commerce
Mostrando categorias desde la API
Url Params
LazyLoading y Code Splitting
Aplicando LazyLoading
Prefetching
Usando la nueva sintaxis de Angular 17
Lanzando tu aplicación a producción
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
En el desarrollo web, es crucial ofrecer una interfaz limpia y comprensible para los usuarios. Al mostrar precios, por ejemplo, podemos mejorar la experiencia del usuario formateando los valores monetarios. Angular facilita esta tarea a través del pipe de currency. En este contexto, usar el pipe de currency permite que los precios se muestren de manera estandarizada y acorde con el formato monetario deseado:
<span>{{ producto.precio | currency:'USD':true:'1.2-2' }}</span>
Integrar un servicio de carrito de compras en Angular es esencial para manejar el estado de los productos seleccionados por los usuarios. Esto garantiza que los productos sean almacenados y gestionados de manera efectiva.
Inyección de dependencias: Primero, asegúrate de inyectar el CartService
en el componente deseado, típico de Angular para acceder a las funcionalidades del servicio.
import { CartService } from './cart.service';
constructor(private cartService: CartService) {}
Crear el método para añadir al carrito: Asígnale un nombre intuitivo como addToCart
, el cual interactuará directamente con el CartService
.
addToCart() {
if (this.producto) {
this.cartService.addProduct(this.producto);
}
}
Este método verifica que el producto no sea nulo antes de enviarlo al servicio del carrito.
Conectar el método al botón: Enlaza la función al evento de clic en el botón "Add to Cart".
<button (click)="addToCart()">Add to Cart</button>
Persistencia del estado: Gracias a la naturaleza reactiva del servicio, el estado del carrito persiste incluso cuando se navega a otras partes del sitio.
Añadir una indicación visual para la imagen activa en una galería puede mejorar la navegación y la usabilidad.
Identificar la imagen seleccionada: A través de una clase dinámica en Angular, podemos cambiar el estilo de la imagen activa.
<img *ngFor="let imagen of imagenes" [class.selected]="imagen === imagenActiva" [src]="imagen">
Definir estilos CSS: Implementa un borde distintivo a la imagen que tenga la clase .selected
.
.selected {
border: 2px solid red;
}
Interactividad de la selección: Al hacer clic en una imagen, actualiza imagenActiva
a la imagen seleccionada, recalculando así la clase dinámica.
setImagenActiva(imagen) {
this.imagenActiva = imagen;
}
Estas mejoras no sólo enriquecen la experiencia del usuario, sino que también demuestran buenas prácticas en el desarrollo front-end con Angular. Implementa estas técnicas y verás cómo avanzas en la creación de interfaces de usuario efectivas y eficientes. ¡Sigue explorando y desarrollando tus habilidades en Angular para llevar tus proyectos al siguiente nivel!
Aportes 4
Preguntas 0
✅
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?