繁体   English   中英

在ionic3中使用延迟加载的全局导航提供程序是否不好?

[英]Is it bad practice to use a global navigation provider in ionic3 with lazy loading?

我正在使用全局提供程序通过将导航控制器从页面传递到provider方法来打开页面。 还有其他更好的方法吗?

主要目的是不重复自己。 我在globalProvider.ts中使用的打开页面方法如下。 currentActive页面存储在提供程序的变量中,以防用户登录到应用程序,他将被重定向到最后一个活动页面(currentActive)

globalProvider.ts

  openPage(navCtrl, page, params, setActive = true) {
    this.showLoading();
    if (setActive) {
      this.currentActive = { root: page, params: params };
    } else {
      this.currentActive = { root: 'HomePage', params: null };
    }
    navCtrl.setRoot(page, params).then(res => {
      if (!res) {
        this.showError('Please login to view page!');
        navCtrl.setRoot('LoginPage', {
          activePage: this.currentActive.root
        }).then(res => {
          this.hideLoading();
        }).catch(err => {
          this.hideLoading();
        });
      }
      this.hideLoading();

    }).catch(error => {
      this.hideLoading();
    });
  }

我认为这种做法没有什么坏处。 我也做了类似的逻辑,以避免在每个页面中重复执行show加载和hide加载逻辑。

但是,我还保留了另一个参数 ,以帮助我确定是应将页面设置为root还是应将其压入当前堆栈。

这也有助于我从中心位置跟踪页面视图以进行分析。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM