ionic2(仿單糖app)-03項(xiàng)目模塊化

設(shè)計(jì)結(jié)構(gòu)如下

模塊化設(shè)計(jì)

其中 component.module 是公共組件的模塊。虛線的base.module 是暫時(shí)沒有實(shí)現(xiàn)的模塊,里面應(yīng)該包含所有項(xiàng)目都能通用的一些服務(wù)、組件等。

代碼結(jié)構(gòu)如下

代碼模塊結(jié)構(gòu)
根模塊內(nèi)容
import { NgModule, ErrorHandler } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import {HttpModule} from '@angular/http';

import { MyApp } from './app.component';
import { TabsPage } from '../pages/tabs/tabs';

import { MineModule } from '../pages/mine/mine.module';
import { HomeModule } from '../pages/home/home.module';
import { ClassifyModule } from '../pages/classify/classify.module';
import { ShoppingModule } from '../pages/shopping/shopping.module';

import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { Network } from '@ionic-native/network';
import { IonicStorageModule } from '@ionic/storage';
import { HttpService } from '../providers/HttpService';
import { NativeServiceC } from '../providers/NativeServiceC';
import { GlobalData } from '../providers/GlobalData';

@NgModule({
  declarations: [
    MyApp,
    TabsPage
  ],
  imports: [
    BrowserModule,
    HttpModule,
    IonicModule.forRoot(MyApp,{
      mode:'ios', // android是"md" 統(tǒng)一為iOS平臺(tái)樣式
      backButtonText:'',
      tabsHideOnSubPages:true
    }),
    IonicStorageModule.forRoot(),
    //  自定義模塊
    MineModule,
    HomeModule,
    ClassifyModule,
    ShoppingModule
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    TabsPage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    Network,
    HttpService,
    NativeServiceC,
    GlobalData,
    {provide: ErrorHandler, useClass: IonicErrorHandler}
  ]
})
export class AppModule {}
  • declarations - 聲明本模塊中擁有的視圖類。Angular 有三種視圖類:組件、指令、管道。

  • exports 導(dǎo)出對(duì)外公開的組件、模塊

  • imports 本模塊聲明的組件模板需要的類所在的其它模塊

  • providers 本模塊中包含的服務(wù)。

  • bootstrap 指定應(yīng)用的主視圖(稱為根組件),它是所有其它視圖的宿主。只有根模塊才能設(shè)置bootstrap屬性。

子模塊內(nèi)容
import {NgModule} from '@angular/core';
import {IonicPageModule} from 'ionic-angular';
import {HomePage} from './home';

// module
import {ComponentModule} from '../../component/component.module'

import { LoginService} from '../login/loginService'

@NgModule({
    imports: [
        IonicPageModule.forChild(HomePage),
        ComponentModule
    ],
    declarations: [HomePage],
    entryComponents: [],
    providers: [],
    exports: []
})
export class HomeModule {
}

和根模塊的內(nèi)容基本相同 較簡單 其他模塊一樣

這樣進(jìn)行 模塊化以后 每一個(gè)模塊都只關(guān)心和自己相關(guān)的組件 服務(wù)等 層級(jí)管理 較為方便

其他

項(xiàng)目代碼在碼云上管理 更新中。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評(píng)論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,781評(píng)論 25 709
  • 在補(bǔ)充作業(yè)的過程中,發(fā)現(xiàn)可能性真的很多。 比如在查找的“鄉(xiāng)村旅游發(fā)展中醫(yī)療服方面的不足”的這個(gè)問題時(shí),做了思維導(dǎo)圖...
    江62閱讀 208評(píng)論 0 0
  • 一千種人就有一千種活法,這句感悟是我經(jīng)過兩天的“品衣識(shí)人”課程得到的最大的收獲,我從來不知道會(huì)有那樣一群女人,在經(jīng)...
    今天安好閱讀 1,212評(píng)論 0 2
  • 不管這一天有多難過 記得認(rèn)真卸妝洗臉沖澡 吹干頭發(fā) 安安穩(wěn)穩(wěn)鉆進(jìn)被窩 床就像一個(gè)膠囊 時(shí)光咻一下 就帶你到一個(gè)明亮...
    篤學(xué)青衿閱讀 250評(píng)論 2 1

友情鏈接更多精彩內(nèi)容