Documentos de Académico
Documentos de Profesional
Documentos de Cultura
En el pasado, los desarrolladores web usaban VanillaJS y jQuery para desarrollar sitios web
dinámicos pero, a medida que crecía la lógica del sitio web, el código se volvía cada vez más
tedioso de mantener. Para las aplicaciones que usan una lógica compleja, los desarrolladores
tuvieron que hacer un esfuerzo adicional para mantener la separación de preocupaciones para la
aplicación. Además, jQuery no proporcionó facilidades para el manejo de datos entre vistas.
Para abordar los problemas anteriores, los frameworks del lado del cliente como Angular
entraron en escena, lo que facilitó la vida de los desarrolladores al manejar la separación de
preocupaciones y dividir el código en bits de información más pequeños (en el caso de Angular,
llamados Componentes).
Los marcos del lado del cliente permiten desarrollar aplicaciones web avanzadas como la
aplicación de una sola página. No es que no podamos desarrollar SPA usando VanillaJS, pero al
hacerlo, el proceso de desarrollo se vuelve más lento.
El main.ts crea un browser environment y hace el bootstrap module que hace el bootstrap de
nuestra aplicación. Se carga el AppModule que hace el bootstrap del AppComponent que es el
componente que se carga en el body del index.html
A continuación, las expresiones en angular se evalúan con respecto a un objeto de local scope,
mientras que las expresiones de JavaScript se comparan con un objeto de global scope o global
window también se le dice.
¿Qué son las aplicaciones de una sola página (SPA)? Las aplicaciones de una sola página son
aplicaciones web que solo necesitan cargarse una vez, con una nueva funcionalidad que consiste
en solo cambios menores en la interfaz de usuario. No carga nuevas páginas HTML para mostrar
el contenido de la nueva página, sino que lo genera dinámicamente. Esto es factible gracias a la
capacidad de JavaScript para alterar los componentes DOM en la página actual. Un método de
aplicación de una sola página es más rápido, lo que da como resultado una experiencia de
usuario más consistente.
Hay dos formas de crear una plantilla en un componente Angular: Inline Template y Linked
Template.
Inline Template: la configuración template del decorator component se utiliza para especificar
un template HTML en línea para un componente. La Plantilla se envolverá dentro de comillas
simples o dobles.
Linked Template: un componente puede incluir un template HTML en un archivo HTML
separado con la opción templateUrl que se usa para indicar la ruta del archivo de plantilla
HTML.
Considere una aplicación, donde varios componentes deben tener funcionalidades similares. Lo
normal es agregar esta funcionalidad individualmente a cada componente, pero esta tarea es
tediosa de realizar. En tal situación, uno puede crear una directiva que tenga la funcionalidad
requerida y luego, importar la directiva a los componentes que requieren esta funcionalidad.
Tipos de directivas:
1. Directivas de componentes
Estos forman la clase principal en las directivas. En lugar del decorador @Directive, usamos el
decorador @Component para declarar estas directivas. Estas directivas tienen una vista, una hoja
de estilo y una propiedad de selector.
2. Directivas estructurales
3. Directivas de atributos
Componentes
En Angular, los componentes son los bloques de construcción básicos, que controlan una parte
de la interfaz de usuario para cualquier aplicación.
Módulos
Un módulo es un lugar donde podemos agrupar componentes, directivas, servicios y pipes. El
módulo decide si los componentes, directivas, etc. pueden ser utilizados por otros módulos,
exportando u ocultando estos elementos. Cada módulo se define con un decorador @NgModule.
Por defecto, los módulos son de dos tipos: Root Module y Feature Module.
Cada aplicación puede tener solo un Root Module, mientras que puede tener uno o más Feature
Module.
Servicios
Los servicios son objetos que se instancian solo una vez durante la vida útil de una aplicación. El
objetivo principal de un servicio es compartir datos y funciones con diferentes componentes de
una aplicación Angular.
Un servicio se define usando un decorador @Injectable. Una función definida dentro de un
servicio se puede invocar desde cualquier componente o directiva.
¿Qué es el scope?
En Angular, el scope es un objeto que se refiere al modelo de aplicación. Es un contexto en el
que se pueden ejecutar expresiones. Estos scopes se agrupan jerárquicamente, de forma
comparable a la estructura DOM de la aplicación. Un scope ayuda en la propagación de varios
eventos y el seguimiento de las expresiones.
Event Binding: al usarlos se puede responder a eventos del DOM como clics de botones y
movimientos del mouse. Cuando se produce un evento del DOM (como un clic, un cambio o una
pulsación de tecla), se llama al método designado del componente.
String interpolation: para exportar datos de la clase del componente a la vista, la interpolación
de strings es un enfoque de data binding unidireccional. Los datos del componente se muestran
en la vista utilizando la expresión de template encerrada entre llaves dobles. El valor de una
propiedad del componente se agrega mediante la interpolación de strings.
Los decoradores son métodos o patrones de diseño que están etiquetados con un símbolo @
prefijado y precedidos por una clase, método o propiedad. Permiten la modificación de un
servicio, directiva o pipe antes de que se utilice. Un decorador, en esencia, proporciona
metadatos de configuración que especifican cómo se debe procesar, construir y utilizar un
componente, una clase o un método en tiempo de ejecución. Angular incluye una serie de
decoradores que adjuntan varios tipos de metadatos a las clases, lo que permite que el sistema
entienda qué significan todas estas clases y cómo deberían funcionar.
Tipos de decoradores:
Decorador de métodos: los decoradores de métodos, como su nombre lo indica, se utilizan para
agregar funcionalidad a los métodos definidos dentro de nuestra clase. @HostListener
Decorador de clase: los decoradores de clase son los decoradores de más alto nivel que
determinan el propósito de las clases. Le indican a Angular que una clase específica es un
componente o módulo. Y el decorador nos permite declarar este efecto sin tener que escribir
ningún código dentro de la clase. @Component
Decorador de parámetros: los argumentos de los constructores de su clase se decoran con
decoradores de parámetros.
Decorador de propiedades: estos son los segundos tipos de decoradores más populares. Nos
permiten mejorar algunas de las propiedades en nuestras clases. @Input
Por default, todos los pipelines son puros. Se puede especificar pipes impuros utilizando la
propiedad pure.
@Pipe({
name: 'impurePipe',
pure: false/true
})
export class ImpurePipe {}
Sí, angular proporciona una tecnología llamada Angular Universal, que se puede usar para
representar aplicaciones en el lado del servidor.
Los usuarios pueden ver instantáneamente una vista de la aplicación. Con esto se logra
proporcionar una mejor experiencia de usuario.
Muchos motores de búsqueda esperan páginas en HTML simple, por lo tanto, Universal puede
asegurarse de que su contenido esté disponible en todos los motores de búsqueda, lo que
conduce a un mejor SEO.
Cualquier aplicación renderizada del lado del servidor se carga más rápido ya que las páginas
renderizadas están disponibles para el navegador antes.
Native: el componente no hereda estilos del HTML principal. Los estilos definidos en el
decorador @Component de este componente solo se aplican a este componente.
Emulated (Default): el componente hereda estilos del HTML principal. Los estilos establecidos
en el decorador @Component solo se aplican a este componente.
None: los estilos del componente se propagan al HTML principal y, por lo tanto, son accesibles
para todos los componentes de la página. Tenga cuidado con los programas que tienen
componentes Ninguno y Nativo. Los estilos se repetirán en todos los componentes con
encapsulación Nativa si no tienen encapsulación.
La mayoría de las veces, rxJs se usa en llamadas HTTP con angular. Debido a que las
transmisiones http son datos asincrónicos, podemos suscribirnos a ellos y aplicarles filtros.
CATEGOR
TYPE SYNTAX
Y
Interpolation
Property
Attribute
content_copy{{expression}}
Class One-way from
Style [target]="expression" data source to
view target
One-way from
content_copy(target)="statement" view target to
Event data source
content_copy[(target)]="expression
"
Two-way Two-way
Analicémoslo, las dependencias en angular no son más que servicios (@Injectable) que tienen
funcionalidad. La funcionalidad de un servicio puede ser necesaria para varios componentes y
directivas en una aplicación. Angular proporciona un mecanismo fluido mediante el cual
podemos inyectar estas dependencias en nuestros componentes y directivas.
constructor(private testService:TestService) { }
Básicamente, solo estamos creando dependencias que se pueden inyectar en todos los
componentes de una aplicación.
¿Qué son los lifecycle hooks en Angular? Explique algunos ganchos del ciclo de vida.
Cada componente en Angular tiene un ciclo de vida y diferentes fases por las que pasa desde el
momento de la creación hasta el momento en que se destruye. Angular proporciona ganchos para
aprovechar estas fases y desencadenar cambios en fases específicas de un ciclo de vida.
https://docs.angular.lat/guide/glossary#lifecycle-hook
https://docs.angular.lat/guide/router#preventing-unauthorized-access