Soy nuevo en Angular y estoy tratando de entender el orden en que procesa las aplicaciones de archivos. Entonces, según entiendo el orden: 1- main.ts se procesa y el método de arranque que pertenece a la plataforma que se importa acepta el archivo del módulo raíz como argumento. 2- se procesa app.module.ts, que importará todos los paquetes necesarios y los archivos de aplicación necesarios para la aplicación. Aquí también es donde todos los diferentes componentes y directivas y lo que no sea de la aplicación se declaran para su uso en la aplicación, y donde el componente raíz de la aplicación se arranca para que el modelo de árbol de componentes se represente de arriba hacia abajo. 3 - Aquí es donde estoy luchando por comprender completamente lo que está sucediendo.
Entonces, comenzando con la representación del componente raíz, Angular seguirá la ruta principal del niño hacia abajo en el árbol de los componentes secundarios de los componentes raíz y los procesará en orden. Entonces, digamos que después de la declaración AppComponent viene BookItemComponent seguido del componente BookItemList y, por último, una directiva llamada FavoriteDirective. Por lo tanto, se inicia AppComponent y representa el elemento DOM personalizado principal en el cuerpo del marcado de las aplicaciones. Luego, anidado dentro de esto, viene BookItemComponent, que crea otro elemento DOM personalizado llamado . En esta clase de componentes tenemos un selector de entrada llamado bookItem. Luego, anidado dentro de esto, viene el componente BookItemList, que contiene una matriz de elementos de libros llamados bookItems. Finalmente, el FavoriteDirective que solo maneja algunos enlaces de host simples para crear una clase para el elemento de host.
Entonces, mi pregunta en pocas palabras: digamos que BookItemComponent se representa pero tiene algunos enlaces dentro de su marcado que dependen del código de la clase BookItemListComponents o la clase FavoriteDirectives. ¿Angular se adelantaría a BookItem y miraría esos archivos? ¿O Angular detendría su procesamiento de la clase BookItemComponent, saltaría y buscaría una coincidencia de datos para el elemento que aún no puede interpretar? ¿O tal vez detenerse e iterar al siguiente componente y avanzar en orden y una vez que encuentre los datos que necesitaba para los elementos que aún no pudo interpretar, luego regrese para completar los espacios? Me resulta difícil seguir el camino de la representación cuando veo que esto sucede. ¿Tal vez solo estoy pensando en ello incorrectamente?
No estoy seguro de lo que quiere decir con "encontrar los datos". Los enlaces son explícitos sobre dónde buscar los datos. Si un campo al que se refiere un enlace aún no tiene datos, entonces arroja si esto hace que la expresión no sea válida como {{person.name}} cuando person es null (puede solucionar el problema usando {{person?.name}} para evitar una excepción). De lo contrario, Angular "encontrará" los datos una vez que estén disponibles y se ejecute la detección de cambios.