Un componente es una pieza de software con una responsabilidad única y una estructura y funcionalidad determinada, además de ser reutilizable.
Es una manera de dividir tu aplicación de una forma escalable para no tener todo en un solo archivo. Por ejemplo, un componente para el header, otro para el footer, uno más para el menú, etc.
Componentes en Angular
Puedes crear tu primer componente en Angular utilizando el comando ng generate component test-name o en su forma corta ng g c test-name.
Esta acción creará los siguientes archivos:
my-test-name.component.html
my-test-name.component.ts
my-test-name.component.css
my-test-name.component.spec.ts
El archivo .html que será el template que tu componente utilizará.
El archivo .ts que contiene el código TypeScript y la lógica.
El archivo .css que contiene los estilos.
Si escogiste trabajar con un preprocesador de CSS, este archivo puede ser .scss, .sass o .less.
Finalmente, el archivo más extraño, .spec.ts que contiene el código de las pruebas unitarias que puedes escribir para automatizar el testing en tu componente.
Angular también importará automáticamente el componente creado en el archivo app.module.ts para que automáticamente puedas utilizarlo en tu aplicación.
Observa lo más importante, el decorador @Component().
Los decoradores alteran el comportamiento de una clase en Angular, para que el compilador de TypeScript interprete el código de la manera correcta y sepa que una clase es:
un componente,
un módulo,
un servicio,
una directiva, etc.
Este decorador es quién enlaza el componente con el archivo HTML y la hoja de estilos, además le otorga al componente un selector o un nombre para utilizarlo en tus templates.
Contribución creada con los aportes de Kevin Fiorentino.
Si en algún caso, debes crear un componente muy básico, que no requiera un archivo de estilos, puedes añadir el flag "-is" que es "inline styles", esto hace que no se genere un archivo de estilos...
También puedes usar --skip-tests para no crear el archivo de pruebas en caso de que lo necesites... :D
ng g c componentes/img --skip-tests -is
gracias por compartir :)
skip tests me suena a que es peligroso jajaja
Con esto deberian iniciar en el curso de fundamentos :P (para organizacion)
x2
Creo que estuvo muy bien el de fundamentos sin tocar estos temas, ayuda a que los que no conocemos el framework no nos agobiemos y podamos iniciar con cosas realmente básicas.
Incluso si este video es de react ayuda en teorizar que es un componente
Es de las mejores propagandas de platzi para desarrollo front, adicional enseñan muy bien lo que es un componente
Gracias
¿QUÉ SON LOS COMPONENTES?
Un componente tiene responsabilidades unicas, estructura propia con estilos apropiados.
Componentes generado tiene los siguientes archivos:
-> todo.component.html
-> todo.component.css
-> todo.component.spec.ts (pruebas en angular)
-> todo.component.ts
Comando para crear un componente
-> ng g c name_component
Crear componente sin estilos
-> ng g c componentes/name_component -is
Crear componente sin archivos de testing
-> ng g c componentes/img --skip-tests
Gracias por el resumen, muy completo. Te recomiendo usar el botón </> para ingresar las líneas de comando, se ve más claro el comentario, ej:
ng g c componentes/name_component -is
Like, gracias por compartir.
Si alguién más quiere aprender más de los decoradores, este video me ayudó bastante
Ufff perfecta aportación colega! tambien me llamo mucho la atención el tema de los decoradores.
Muchas gracias.. siempre he pensado que la mejor manera de aprender es ver lo mismo desde diferentes perspectivas.
Hola me podrian confirmar que version de angular usaron para este curso? me salen cosas muy diferentes a las que salen en la clase.
No tiendo porque habla de una clase de fundamentos si esta clase fue en el 2021 y la que esta abajo con el link de fundamentos es otra del 2023, si la que el menciona deberia ser del 2021 o menos, como el curso de fundamentos va ser despues del 2021 año de este curso
Estos cursos estan desactualizados, seguramente el se referia a un curso mas antiguo, lo mas seguro es que actualizaron el otro curso y dejaron este sin actualizar, el curso de fundamentos usa una version mas actualizada e incluso toca temas como signals, mientras que este no.
alguien sabe por qué cuando uso el comando Ng new nombre-del-proyecto no me pregunta si quiero routing ni me pregunta si quiero usar Sass less o ccs? simplemente inicia el proyecto con css y listo no me pregunta nada.
Es por las configuraciones por defecto que trae Angular en sus últimas actualizaciones. Ahora debes indicar si deseas el routing o los estilos que usaras en la misma línea de comandos
Ej:
ng newnombre-proyecto --routing --style=scss
Te dejo la doc oficial por acá
Espero te sirva!
Ya trabajo con Angular pero en todo este tiempo no habían tenido la oportunidad de ver estos cursos, hasta ahorita! Entonces voy a tragarmelos todos en un poco tiempo para alcanzar a abarcar todo lo que pueda! Igual se me están haciendo faciles por lo mismo que ya he trabajado con esto
Si no te pregunta el tipo de preprocesador que quieres usar o por la creación de rutas al crear el proyecto, o ejecuta el siguiente comando:
ng new my-store --style=scss
ng generate module app-routing --flat --module=app
Tengan en cuenta que este curso salio en 2021, para esa fecha angular estaba en la version 13, actualmente (Dec 5, 2025) se encuentra en la version 21. . Con lo cual este curso esta obsoleto en terminos de la tecnologia que maneja, por lo cual les recomiendo prestar atencion a los fundamentos, ya que estos practicamente no cambian (Aunque cabe aclarar que si cambiaron un poco en Angular 17v cuando angular se volvio Standalone por defecto).
Si usan una version igual o superior a la 17, no les va a general el archivo "app.module.ts", tienen que agregar "--no-standalone" al comando de creacion de la app.
ng new app-name --no-standalone
En mi caso la funcionalidad desfazada que encontré con esta clase es que no reconoce automaticamente el componente img.ts, me funciona sólo si realizo la importacion por codigo dentro del componente app.ts
Esto es importante de tener en cuenta, ya que puede causar confusión si se espera que Angular maneje automáticamente todos los componentes como solía hacerlo en versiones anteriores.
Muy buen aporte Liza 👍👍.
Como Angular no genera el modulo al que pertenece el componente, sino que el componente es Standalone, es el componente quien tiene que hacer las importaciones necesarias para su correcto funcionamiento.
Se me genero un inconveniente al momento de generar el componente, en donde me indicaba lo siguiente
More than one module matches.Use the '--skip-import' option to skip importing the component into the closest module or use the module option to specify a module.
Por alguna extraña razón no encontraba al archivo principal "app.module.ts" por ello es necesario que se especifique después del nombre del componente con "--module app" por ejemplo
ng g c components/img --module app
Me ayudo esta referencia
Me pase a Curso Avanzado de Desarrollo con Angular para eCommerce que es al parecer el mas actual
En Angular v20, ya no crea ".component" por defecto, ¿cierto?
Correcto, desde la 20 el cli de Angular ya no agrega ".component" a los components.
No tengo el archivo, de app.module.ts para avanzar con la configuración, que podria ser??
Hola, si lo está. Si te fijas es el que está como de amarillo con una M de modificación.
Cuál es el curso de fundamentos?
Para los nuevos que no les aparece el app.module.ts lo que deben hacer es que en el momento que crean el proyecto:
ng new my-store --standalone=false
Ya de esta manera les saldría el archivo. Sucede por las nuevas versiones de Angular.
Cuándo van a publicar un curso de Angular 14?... Angular 8 ya pasó hace muchos años.
Hola, los componentes no han cambiado entre versiones por lo tanto funcionan igual entre versiones, y este curso no usa Angular 8 usa Angular 12
Buenas tardes porque cuando creo el componente no sale con el constructor ni el Oninit, me sale asi
![](![](
si alguien me puede explicar por favor muchas gracias.
snnipets
Buenas, tengo la última versión de angular, al crear el componente en el archivo "ts" me sale sin el constructor ni el ngOnInit alguno sabe por qué y puedo corregir para que se me genere automáticamente.
que yo sepa siempre toca importarlo e implementarlo en la firma de la clase