ionic3 中使用ionicPage实现页面懒加载

ionic3 中如何使用ionicPage实现页面懒加载,先看看官方demo:


    https://github.com/robinsonaaron/ionicPage



现在运行ionic3 懒加载页面的官方demo



    1.首先github上面下载

    2.cd到对应目录 运行 npm install 或者cnpm install

    3.运行后你会发现官方的列子中ionic有类似angular的路由了,并且看不到的是这个页面已经用ionicPage实现了页面懒加载。

    






现在看看官方ionicPage的demo中是如何实现的。


如我们从home首页跳转到my-page页面。我们以前需要在app.module.ts里面引入注入对应的my-page页面,现在不需要了,这样的话刚加载页面的时候就不需要加载这个模块。


现在比如我们要从home页面跳转到my-page页面我们只需要做以下几步操作:

    


    1、my-page目录下面新建my-page.module.ts,如果你是用ionic page 名称生成的话它自动会给你创建。

    2、在my-page.ts中声明

    @IonicPage({
      name: 'your-page',
       segment: 'another-path/:id'
   }

    3、home 页面引入my-page'

        import { MyPage } from '../my-page/my-page';


    4、 home页面通过navCtrl.push跳转页面,注意上面第二部就是配置的路由。


    this.navCtrl.push('your-page', {
      'id': detailInfo.id
    });



上面过程中你需要跳转的页面都不需要在app.module.ts中声明了,这样ionic3 中使用ionicPage就可以实现页面懒加载。



Home页面:



my-page页面:




最后注意:官方的demo用上面的几步是可以实现的,但是我们现在创建的ionic3的项目实现不了。


如果我们的项目也要实现上面的功能,需要把官方的package.json复制到我们的项目里面,然后删除node_modules然后重新运行npm install/cnpm installl,这样的话我们的项目可以用上面的ionicPage实现ionic3基于angular的路由,并且可以实现懒加载。



为什么要复制别人demo里面的package.json,因为里面有对应的模块信息,老版本的ionic可以实现这个功能,但是新版本实现不了,所以我们使用老版本的package.json就可以实现懒加载