你能告诉我 Ionic 3
应用程序中的 Component
和 Page
生成器有什么区别吗?看来我也可以在组件内部使用像 ionViewWillLeave
这样的页面生命周期 Hook 。那么我什么时候应该使用 Angular 生命周期 Hook 呢?如果相同那么为什么它有 2 个生成器?希望您能为此提供反馈。
组件生成器:
ionic generate component SubscribeTopicComponent
页面生成器:
ionic generate page LoginPage
最佳答案
根据评论中的对话:
从Angular的 Angular 来看可能是一样的,但是Pages和Components在Ionic中有着不同的含义。 就 Angular 而言,两者都只是组件,但在 Ionic 的上下文中,页面是一个将充当整个 View 的组件 (它可能有嵌套组件);我们将 Ionic 页面视为一个独立概念。大多数情况下,在 Angular 应用程序中,组件只是更大组件的一部分,所以我想这是与 Pages 的最大区别。
关于使用 Angular 的生命周期钩子(Hook)时,我喜欢在嵌套组件中使用它们,但在页面上工作时我更喜欢 Ionic 生命周期钩子(Hook)。主要是因为 ionViewWillEnter
之类的东西在简单组件的上下文中没有太大意义,而 ngOnInit
可以。话虽这么说,我还在页面上使用了一些 Angular 生命周期 Hook ,比如 ngOnDestroy
(我用它在页面将被销毁时从页面中删除所有订阅),但就像你一样说,如果我们想使用 Ionic 的生命周期钩子(Hook),ionViewWillUnload
似乎是正确的方法。
我想 大多数 Ionic 生命周期钩子(Hook)更多地与用户与整个页面交互的方式相关(将进入页面,将离开从一个页面,可以进入一个页面,可以从一个页面离开......)和 Angular 生命周期钩子(Hook)更多地与单个组件生命的不同阶段相关(输入已经初始化,变化检测器检查了这个组件是否有变化,...),如你所见,这可能与用户交互根本没有直接关系,而且通常是用户不知道的事情。
我很确定没有关于哪种方法更好的规则,但最重要的是一致性。 我认为在作为页面的组件中使用 Ionic 生命周期 Hook ,并在嵌套组件内部使用 Angular 生命周期 Hook 是有意义的,但您可以使用不同的方法,只要您始终如一地在整个应用程序。
关于angular - Ionic 3 组件与页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45279191/