在ionic3中,官方给出了使用懒加载来提升性能的解决方案,如果你的项目过于庞大,官方也给出了脚本用于你的懒加载.
1.为页面创建模块并使用IonicPage
使用Ionic 2,我们为每个页面提供了一个文件夹,其中包含3个文件,如下图所示。
在每个文件夹中,我们需要创建一个NAME.module.ts类型的新文件,这个新模块文件应如下所示(如果我们按照图像中的命名):
1 | import { NgModule } from '@angular/core'; |
在为每个页面创建这个新模块之后,我们还必须为每个页面文件添加一个装饰器。确保导入并将其添加到您的所有页面:
1 | import { IonicPage } from 'ionic-angular'; |
这里需要注意的是,IonicPage这个装饰器,IonicPage接受一个元数据作为参数使用,默认情况下为空,元数据共有4个可配参数,分别是name,segment,defaultHistory,priority这里面和懒加载有关的为priority;该priority属性仅在预加载期间使用。默认情况下,预加载已关闭,因此设置此属性将不执行任何操作,要启用预加载,请preloadModules在主应用程序模块config中设置true:
1 | @NgModule({ |
如果打开预加载,它将根据值加载模块priority。下面的值是可能的priority:”high”,”low”,和”off”。如果没有priority,它将被设置为”low”。
所以这里,请根据自己项目的实际需求选择是否使用预加载
1 | @IonicPage({ |
2.删除页面导入和更改用法
在所有页面中,您现在可以继续删除其他页面的import语句。
Especiall浏览app.module.ts并删除导入,从声明和entryComponents中删除页面。
例如之前:
1 | this.navCtrl.push(HomePage); |
现在
1 | this.navCtrl.push('HomePage'); |
3.添加新模块
我们还需要将BrowserModule导入app.module.ts。如果你的应用程序正在使用HTTP调用,您还需要导入HttpModule,如下所示:
1 | import { BrowserModule } from '@angular/platform-browser'; |
4.Pipes(管道)的懒加载
与angular的共享模块类似的方法一样,我们可以新建一个pipes.module.ts文件内将导入所有你的pipe管道,例如
1 | import { SortScheduleTime } from './sort-schedule-time'; |
如果现在想要在其中一个页面中使用管道,只需将新管道模块添加到该页面的导入中,如下所示
1 | import { PipesModule } from './../../pipes/pipes.module'; |
5.components(组件)的懒加载
与自定义管道类似的方法,新建一个components.modules.ts即可