详解Angular根模块与特性模块

本篇文章带大家了解一下angular中的特性模板和根模板。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

详解Angular根模块与特性模块

前提是安装了 Angular cli,以下的大部分文件创建都是依赖于cli提供的指令

Angular中的特性模板和根模板(AppModule)

区别在于特性模板可以把应用划分,个人理解类似于组件化

1、特性模板创建的指令ng g module article ,这里使用的是ng g module article –routing,可以生成一个article-routing.module.ts路由文件

2、此时CLI会在app文件夹下再创建一个文件夹article,article文件夹下包含两个文件article.module.ts和article-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,它提供了很多像 ngIf 和 ngFor 这样的常用指令。 特性模块导入 CommonModule,而不是 BrowserModule,后者只应该在根模块中导入一次。 CommonModule 只包含常用指令的信息,比如 ngIf 和 ngFor,它们在大多数模板中都要用到,而 BrowserModule 为浏览器所做的应用配置只会使用一次。

import { NgModule } from '@angular/core';import { CommonModule } from '@angular/common';import { ArticleRoutingModule } from './article-routing.module';import { ArticleListComponent } from './article-list/article-list.component';import { ArticleCreateComponent } from './article-create/article-create.component';@NgModule({  declarations: [ArticleListComponent, ArticleCreateComponent],  imports: [    CommonModule,    ArticleRoutingModule  ]})export class ArticleModule { }

登录后复制

相关推荐:《angular教程》

5、article-routing.module.ts ,路由地址嵌套配置,这里的地址设置是因为在app-routing.module根路由模块中已经设置了当前模块的路由前缀为article,因此下面的路由都只用直接设置即可,访问时带上根路由设置的路由前缀。

例如,根路由设置的是article,这里设置的是list,访问地址需要使用article/list在这里插入图片描述

import { NgModule } from '@angular/core'import { Routes, RouterModule } from '@angular/router'import { ArticleListComponent } from './article-list/article-list.component'import { ArticleCreateComponent } from './article-create/article-create.component'const routes: Routes = [    {        path: '',        children: [            {                path: '',                pathMatch:'full',                redirectTo: '/article/list'            },            {                path: 'list',                component: ArticleListComponent            },            {                path: 'create',                component: ArticleCreateComponent            }        ]    }]@NgModule({    imports: [RouterModule.forChild(routes)],    exports: [RouterModule]})export class ArticleRoutingModule {}

登录后复制

6、根模块app.mudles.ts,导入app-routing.module文件,可以配置全局的路由

import { HttpClientModule } from '@angular/common/http';import { NgModule } from '@angular/core';import { FormsModule } from '@angular/forms';import { BrowserModule } from '@angular/platform-browser';import { AppRoutingModule } from './app-routing.module'import { AppComponent } from './app.component';@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 '@angular/core'import { Routes, RouterModule } from '@angular/router'import { LoginComponent } from './login/login.component'const routes: Routes = [    { path: 'login', component: LoginComponent },    {        path: 'article',        loadChildren: () => import('./article/article.module').then((m) => m.ArticleModule)    }]@NgModule({    imports: [RouterModule.forRoot(routes)],    exports: [RouterModule]})export class AppRoutingModule {}

登录后复制

8、最后如果想要访问article下面的list和create路由在浏览器输入地址article/list

article/list

在这里插入图片描述

或者article/create

在这里插入图片描述

更多编程相关知识,请访问:编程视频!!

以上就是详解Angular根模块与特性模块的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2716738.html

(0)
上一篇 2025年3月7日 21:58:28
下一篇 2025年3月7日 21:58:38

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 浅谈Angular CLI的两种安装方式

    本篇文章给大家介绍一下angular cli的两种安装方式:在线安装和离线安装。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关教程推荐:《angular教程》 Angular CLI 安装方式 默认已经安装了 Nod…

    2025年3月7日
    200
  • 详解Angular中的Observable(可观察对象)

    本篇文章带大家了解一下angular 可观察对象(observable)。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关教程推荐:《angular教程》 可观察对象(Observable) 可观察对象支持在应用的发布…

    2025年3月7日
    200
  • 浅谈Angular组件的交互方式

    本篇文章和大家一起聊聊angular组件的交互方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Angular 组件交互 组件交互: 组件通讯,让两个或多个组件之间共享信息。 使用场景: 当某个功能在多个组件中被使用到…

    2025年3月7日
    200
  • 13个关于angular的前端面试题(总结)

    本篇文章给大家总结分享13个关于angular的前端面试题。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 1,ng-if 跟 ng-show/hide 的区别有哪些? 第一点区别是,ng-if 在后面表达式为 true …

    2025年3月7日
    200
  • Angular怎么刷新当前页面?方法介绍

    本篇文章给大家分享几种angular刷新当前页面的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Angular刷新当前页面的几种方法 默认,当收到导航到当前URL的请求,Angular路由器会忽略。 Heroes …

    2025年3月7日
    200
  • 深入浅析Angular中Directive的用法

    本篇文章给大家详细介绍一下angular directive,了解它的用法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Angular Directive 学习 学习目的:为了更好的了解 ng directive 的使…

    2025年3月7日
    200
  • 20个优秀的Angular开源项目,你了解几个呢?

    本篇文章给大家分享20个你值得了解的angular开源项目。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 相关教程推荐:《angular教程》 1.Angular-CLI – angular工具命令行 Git…

    2025年3月7日 编程技术
    200
  • 详解Angular中的Route路由

    本篇文章带大家一起了解angular中的路由(route)。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Angular 路由(Route) 我们可以将路由器理解成控制整个应用状态的视图对象, 每个应用都有一个路由器; …

    2025年3月7日
    200
  • 详解Angular中的NgModule(模块)

    本篇文章带大家详细了解一下angular中的ngmodule(模块)。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Angular 模块(NgModule) Angular 应用是模块化的, 它拥有自己的模块化系统, 称…

    2025年3月7日
    200
  • 深入了解Angular中的Component组件

    本篇文章给大家介绍一下angular中的component组件。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。 Angular 组件(Component) 组件(Component) 是构成 Angular 应用的基础和核…

    2025年3月7日
    200

发表回复

登录后才能评论