Sam*_*ath 46 typescript ionic-framework ionic2 ionic3 angular
你能告诉我应用程序Component和Page生成器之间有什么区别Ionic 3吗?看来我也可以ionViewWillLeave在组件内部使用页面生命周期钩子.所以我何时应该使用角度生命周期钩子呢?如果它是相同的那么为什么它有2个发电机?希望你能为此提供反馈.
组件生成器:
ionic generate component SubscribeTopicComponent
Run Code Online (Sandbox Code Playgroud)
页面生成器:
ionic generate page LoginPage
Run Code Online (Sandbox Code Playgroud)
seb*_*ras 60
根据评论中的对话:
从Angular的角度来看可能是相同的,但是Pages和Components在Ionic中有不同的含义.就Angular而言,两者都只是组件,但在Ionic的上下文中,Page是一个充当整个视图的组件(它可能有嵌套组件); 我们将Ionic页面视为一个独立的概念.在Angular应用程序中,组件大部分时间只是更大组件的一部分,所以我猜这是与Pages的最大区别.
关于何时使用Angular的生命周期钩子,我喜欢在嵌套组件中使用它们,但在页面上工作时我更喜欢Ionic生命周期钩子.主要是因为ionViewWillEnter在一个简单的组件的上下文中,这样的事情并没有多大意义ngOnInit.话虽这么说,我也在Pages上使用了一些Angular生命周期钩子,就像ngOnDestroy(我用它来删除页面上的所有订阅,当该页面将被销毁时),但就像你说的那样,ionViewWillUnload似乎是正确的方式如果我们想要使用Ionic的生命周期钩子,那就去做吧.
我猜大多数 Ionic生命周期钩子与用户与页面整体交互的方式更相关(将进入页面,将离开页面,可以进入页面,可以离开页面.. .)和Angular生命周期钩子与单个组件的生命周期的不同阶段(输入已经初始化,变化检测器检查了这个组件是否有变化,......)有更多相关性,正如你所看到的那样,可能根本不与用户交互直接相关,通常是用户不知道的事情.
我很确定没有关于哪种方法更好的规则,但最重要的是一致性.我认为在作为Pages的组件中使用Ionic生命周期钩子是有意义的,并且在嵌套组件中使用Angular生命周期钩子,但是只要在整个应用程序中一致地执行它,就可以使用不同的方法.
有两个独立的生成器,因为一个额外的装饰器被添加到离子:@IonicPage
这个装饰器比简单的组件有一些优点.
路由 - 您可以表示页面的URL是什么,如何到达那里以及它的默认历史记录是什么.有了这个,您可以直接访问任何页面,而无需通过导航路径.到此页面的路由也可以使用字符串而不是实际组件来完成
延迟加载 - 当转到页面的URL时,默认情况下,具有此装饰器的页面模块将被延迟加载.
没有应用程序模块的依赖 - 这更像是个人喜爱,但是当您创建页面模块时,您不必将它们添加到原始ngModule中,这是在编译时自动完成的.
有关更多文档:https: //ionicframework.com/docs/api/navigation/IonicPage/
| 归档时间: |
|
| 查看次数: |
19246 次 |
| 最近记录: |