首頁 > web前端 > js教程 > 主體

詳解Angular根模組與特性模組

青灯夜游
發布: 2021-03-24 11:19:54
轉載
1643 人瀏覽過

本篇文章帶大家來了解Angular中的特性模板和根模板。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。

詳解Angular根模組與特性模組

前提是安裝了Angular cli,以下的大部分檔案建立都是依賴cli提供的指令

<span style="font-size: 20px;">Angular</span>#中的特性模板與根模板(<span style="font-size: 20px;">AppModule</span> )

區別在於特性模板可以將應用程式劃分,個人理解類似於元件化

1、特性模板建立的指令ng g module article ,這裡使用的是ng g module article --routing,可以產生一個article-routing.module.ts路由文件

2、此時CLI會在app資料夾下再建立一個資料夾articlearticle文件夾下包含兩個檔案article.module.tsarticle-routing.module.ts

3、使用ng g component 生成兩個元件,指定模板為article,指定的模板會自動匯入到article.modules.ts中,並且註冊到declarations數組,注意:不要刪除declarations中註冊的元件,不然會導致元件中部分指定無法使用

  • ng g component 說明
  • ng g component article/article-list -m=article ,在article資料夾下產生article-list資料夾元件
  • ng g component article/article-create -m=article ,在article資料夾下產生article-create資料夾元件

#4、article.module.ts 在CLI 產生的特性模組中,在檔案頂端有兩個JavaScript 的導入語句:第一個導入了NgModule,它像根模組中一樣讓你能使用@NgModule 裝飾器;第二個導入了CommonModule,它提供了很多像ngIfngFor 這樣的常用指令。特性模組導入 CommonModule,而不是 BrowserModule,後者只應該在根模組中導入一次。 CommonModule 只包含常用指令的訊息,例如ngIfngFor,它們在大多數模板中都要用到,而BrowserModule為瀏覽器所做的應用程式配置只會使用一次。

import { NgModule } from &#39;@angular/core&#39;;
import { CommonModule } from &#39;@angular/common&#39;;

import { ArticleRoutingModule } from &#39;./article-routing.module&#39;;
import { ArticleListComponent } from &#39;./article-list/article-list.component&#39;;
import { ArticleCreateComponent } from &#39;./article-create/article-create.component&#39;;


@NgModule({
  declarations: [ArticleListComponent, ArticleCreateComponent],
  imports: [
    CommonModule,
    ArticleRoutingModule
  ]
})
export class ArticleModule { }
登入後複製

相關推薦:《angular教學

5、article-routing.module.ts ,路由位址巢狀配置,這裡的位址設定是因為在app-routing.module根路由模組中已經設定了目前模組的路由前綴為article,因此下面的路由都只用直接設定即可,訪問時帶上根路由設定的路由前綴。

  • 例如,根路由設定的是article,這裡設定的是list,存取位址需要使用article/list詳解Angular根模組與特性模組
import { NgModule } from &#39;@angular/core&#39;
import { Routes, RouterModule } from &#39;@angular/router&#39;

import { ArticleListComponent } from &#39;./article-list/article-list.component&#39;
import { ArticleCreateComponent } from &#39;./article-create/article-create.component&#39;
const routes: Routes = [
    {
        path: &#39;&#39;,
        children: [
            {
                path: &#39;&#39;,
                pathMatch:&#39;full&#39;,
                redirectTo: &#39;/article/list&#39;
            },
            {
                path: &#39;list&#39;,
                component: ArticleListComponent
            },
            {
                path: &#39;create&#39;,
                component: ArticleCreateComponent
            }
        ]
    }
]
@NgModule({
    imports: [RouterModule.forChild(routes)],
    exports: [RouterModule]
})
export class ArticleRoutingModule {}
登入後複製

6、根模組app.mudles.ts,導入app-routing.module文件,可以設定全域的路由

import { HttpClientModule } from &#39;@angular/common/http&#39;;
import { NgModule } from &#39;@angular/core&#39;;
import { FormsModule } from &#39;@angular/forms&#39;;
import { BrowserModule } from &#39;@angular/platform-browser&#39;;
import { AppRoutingModule } from &#39;./app-routing.module&#39;

import { AppComponent } from &#39;./app.component&#39;;
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    HttpClientModule,
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
登入後複製

7、根模組的路由app-routing.module.ts loadChildren是使用了惰性載入特性模組預設情況下,NgModule都是急性加載的,也就是說它會在應用加載時盡快加載,所有模組都是如此,無論是否立即要使用。對於帶有許多路由的大型應用,請考慮使用惰性載入 —— 一種按需載入 NgModule的模式。惰性加載可以減小初始包的尺寸,從而減少加載時間。

import { NgModule } from &#39;@angular/core&#39;
import { Routes, RouterModule } from &#39;@angular/router&#39;
import { LoginComponent } from &#39;./login/login.component&#39;
const routes: Routes = [
    { path: &#39;login&#39;, component: LoginComponent },
    {
        path: &#39;article&#39;,
        loadChildren: () => import(&#39;./article/article.module&#39;).then((m) => m.ArticleModule)
    }
]

@NgModule({
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule]
})
export class AppRoutingModule {}
登入後複製

8、最後如果想要存取article下面的listcreate路由在瀏覽器輸入位址article/list

  • article/list

    詳解Angular根模組與特性模組

  • article /create

    詳解Angular根模組與特性模組

更多程式相關知識,請造訪:程式設計影片! !

以上是詳解Angular根模組與特性模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!