angular - Ionic 3 组件与页面

标签 angular typescript ionic-framework ionic2 ionic3

你能告诉我 Ionic 3 应用程序中的 ComponentPage 生成器有什么区别吗?看来我也可以在组件内部使用像 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/

相关文章:

css - 使用 ngFor 时不要引入换行符

angular - 如何对 http 401 做出 Angular 响应

ruby-on-rails - Rails Devise token 和 cookie session 同时进行

angularjs - 移动应用程序如何在本地存储消息?

angular - @ViewChild 总是返回 undefined

angular - ngIf 不观察变量变化

html - 无法在 typescript 中转换 HTMLSelectElement

javascript - `/REG/g` 和 `new RegExp()` 之间有不同的行为吗?

javascript - TypeScript 在 JavaScript 函数中为 this.varName 分配类型

react-native - 与 ionic 框架 react 的导航问题