generate docs component angular typescript ionic-framework ionic2 ionic3

angular - docs - Ionic 3 Component vs Page



ionic panel (2)

Basado en la conversación de los comentarios:

Puede ser el mismo desde el punto de vista Angular, pero las Páginas y los Componentes tienen un significado diferente en Ionic. En términos de Angular, ambos son solo componentes , pero en el contexto de Ionic, una página es un componente que actuará como una vista completa (puede tener componentes anidados); Vemos las páginas jónicas como un concepto independiente . Un componente será solo parte de un componente más grande la mayor parte del tiempo en las aplicaciones Angular, así que supongo que esa es la mayor diferencia con Pages.

Acerca de cuando se utilizan los ganchos de ciclo de vida de Angular, me gusta usarlos cuando se trabaja en componentes anidados, pero prefiero ganchos de ciclo de vida iónicos cuando se trabaja en páginas. Principalmente porque cosas como ionViewWillEnter no tienen mucho sentido en el contexto de un componente simple, donde ngOnInit hace. Dicho esto, también usé algunos ganchos de ciclo de vida angular en las páginas, como el ngOnDestroy (lo usé para eliminar todas las suscripciones de una página cuando esa página va a ser destruida), pero al igual que usted dijo, ionViewWillUnload parece ser el La forma correcta de hacerlo es si queremos utilizar los ganchos del ciclo de vida de Ionic.

Supongo que la mayoría de los ganchos de ciclo de vida iónicos están más relacionados con la forma en que el usuario interactúa con la página en su totalidad (ingresará a una página, saldrá de una página, podrá ingresar a una página, podrá salir de una página). .) y los ganchos de ciclo de vida angular están más relacionados con las diferentes etapas de la vida útil de un solo componente (las entradas se han inicializado, el detector de cambios ha verificado si hubo cambios en este componente, ...), que, como puede ver Puede que no esté directamente relacionado con la interacción del usuario, y generalmente son cosas que el usuario no conoce.

Estoy bastante seguro de que no hay una regla sobre qué enfoque es mejor, pero lo más importante es la consistencia. Creo que tiene sentido usar ganchos de ciclo de vida iónicos en los componentes que son Páginas, y usar ganchos de ciclo de vida angular dentro de componentes anidados , pero puede usar un enfoque diferente, siempre y cuando lo haga de manera consistente en toda la aplicación.

¿Puede decirme cuál es la diferencia entre el Component y el generador de Page en la aplicación Ionic 3 ? Parece que también puedo usar ganchos de ciclo de vida de la página como ionViewWillLeave dentro del componente. Entonces, ¿cuándo debo usar los ganchos de ciclo de vida angular entonces? Si es igual entonces ¿Por qué tiene 2 generadores? Espero que usted proporcione una retroalimentación para esto.

Generador de componentes:

ionic generate component SubscribeTopicComponent

Generador de páginas:

ionic generate page LoginPage


Hay dos generadores separados porque se agregó un decorador adicional a ionic: @IonicPage

Este decorador da algunas ventajas sobre un componente simple.

  1. Enrutamiento: puede indicar cuál es la url de la página, cómo llegar y cuál es su historial predeterminado. Con esto puedes acceder a cualquier página directamente sin pasar por la ruta de navegación. El enrutamiento a esta página también se puede hacer con una cadena en lugar del componente real

  2. Carga diferida: el módulo de una página que tiene este decorador se cargará de forma predeterminada al ir a la URL de la página.

  3. La dependencia de los módulos de aplicaciones no es un favorito personal, pero cuando crea módulos que son páginas, no tiene que agregarlos a su ngModule original y esto se hace automáticamente en la compilación.

Para obtener más documentación: https://ionicframework.com/docs/api/navigation/IonicPage/