Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

458
Visualizações
¿Los módulos anidados son malos en Angular?

Hay algo que me pregunto acerca de los módulos. Empecé Angular 2 hace un tiempo, así que busqué demasiados temas pero aún no pude encontrar ninguna respuesta satisfactoria.

Cuando creamos la aplicación angular 2, usamos módulos con seguridad. También use módulos anidados, por supuesto. ¿Cuántos módulos anidados que podemos usar? ¿Es factible o hay un límite para los módulos anidados?

Por ejemplo, digamos que tengo la aplicación del panel de administración. ¿Podemos construir así?

 app.module.ts | --dashboard | --dashboard.module.ts | --login | --login.module.ts . . .

Podemos estructurar de esa manera con seguridad. Pero digamos que tenemos 5 o más módulos anidados, ¿está bien para la aplicación angular? ¿Puede causar algún problema o causar algún problema de rendimiento? ¿O deberíamos mantenerlo simple (máximo 3 anidados, etc.) para practicar?

Además, ¿cómo se comporta tsc cuando se anidan módulos y componentes siempre que aumente?

Para resumir, ¿cuáles son los pros, los contras de los módulos anidados, etc. y cuál es la mejor práctica para la estructuración de módulos anidados?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Anidado o no anidado no es una situación en blanco y negro. Desafortunadamente, como ocurre con la mayor parte del desarrollo de software, "depende".

Sin embargo, le insto a que considere esto: el objetivo de NgModule (además de la motivación técnica de permitir AOT) es proporcionar una "unidad" de nivel superior para su aplicación. En otras palabras, puede agrupar componentes/servicios/tuberías individuales en agrupaciones discretas que le permitan tratar esa agrupación como una sola unidad que proporciona una cierta cantidad de funcionalidad. En la mayoría de los casos, esto se usa para proporcionar funciones en su aplicación (los llamados "módulos de funciones"), pero el sistema NgModule también se usa para proporcionar otros tipos de preocupaciones transversales. De hecho, se vuelve fácil para los autores de bibliotecas distribuir su biblioteca como un solo NgModule, encapsulando toda la funcionalidad que brindan. (Los ejemplos incluyen bibliotecas integradas como HttpModule y FormsModule, pero también MaterialModule, FlexLayoutModule, etc.)

Este caso de uso de pensar en NgModule como un contenedor de distribución me ayuda a pensar en cómo debo agrupar mis componentes/servicios/tuberías; no siempre es posible, pero trato de pensar que puedo tomar una carpeta que contenga la definición del módulo y sus diversas partes. y debería poder colocar esa carpeta en cualquier otra aplicación y básicamente debería funcionar (suponiendo la presencia de sus dependencias externas). Pensarlo de esta manera me ayuda a centrarme en cuán granular es hacer el NgModule. Esto no quiere decir que no anide carpetas dentro de ese NgModule, pero el hecho de que haya una carpeta anidada no significa automáticamente que cree un NgModule, a menos que los elementos tengan sentido como un contenedor de distribución de algún tipo, no me molestaré para crear NgModules anidados solo para que coincidan con la estructura de carpetas.

Para resumir, su estructura de carpetas no significa automáticamente que cree NgModules para las carpetas profundamente anidadas y, como tal, probablemente no sea necesaria una configuración de NgModule profundamente anidada.

about 4 years ago · Santiago Trujillo Relatório

0

Para mí, el objetivo principal de usar NgModule s es la carga diferida ; No soy un fanático de la estructuración lógica/característica en angular. Si no hubiera una carga diferida en angular, probablemente estructuraría el código de esta manera:

 components/ services/ pipes/ models/ ...

En cuanto a la carga diferida, anidar módulos frente a no anidarlos no hace ninguna diferencia. Y probablemente decido qué código se carga junto con qué código está en la misma página. Por ejemplo, incluso si 2 componentes parecen pertenecer a la misma característica pero están en páginas diferentes, me gustaría que estuvieran en los módulos de sus respectivas páginas para una mejor carga diferida.

Entonces, actualmente estructuro mi código de esta manera:

 app | --services/ | -- the services module called `CoreModule` in angular docs. --shared/ | -- the shared module described in angular docs. Has models as well. --pages/ | -- page1/ | -- a module for page1/feature1 that I'll use in lazy-loaded manner (but may not do so if found unsuitable). -- page2/ | -- a module for page2/feature2 that ...

Entonces, respondiendo a su pregunta en específico sobre la anidación:

  • Anidar módulos es en realidad solo una estructura de carpetas; no hay efecto frente a la no prueba angular. Un módulo anidado es como un módulo de nivel superior. Por ejemplo, puede importar login.module.ts en un módulo al lado del dashboard .
  • Dado que es una estructura de carpetas, no hay límite en los niveles de anidamiento angular.
  • Sin embargo, generalmente en módulos anidados, tiene un módulo X importando un módulo Y importando un módulo Z, ... etc. Para este punto, no sé si tiene efecto en el rendimiento o no, pero no espero que lo haga. tener. Especialmente porque existe la misma situación en las dependencias de la biblioteca: imágenes usando un componente/módulo angular de algún paquete npm que usa otro componente/módulo angular en otro paquete npm, etc.
  • Para mi opinión sobre los módulos de anidamiento y la estructura del código en general, lo describí anteriormente.

Como fuente para evitar el anidamiento, consulte el principio "Mantenga una estructura de carpetas plana el mayor tiempo posible" en la Guía de estilo oficial de Angular . En general, la Guía de estilo parece un buen lugar para preguntas similares (¡lo acabo de descubrir!).

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda