angular4, angular5, angular6 路由配置

一. 简述

如何在angular2+框架中配置页面路由?看似简单却又时长出现各种异常问题,今天就全面的说一下如何配置自己项目的页面路由。

二. 在配置路由之前先要了解什么?

forRoot()和forChild()的区别及使用范围

RouterModule.forRoot() 方法用于在主模块中定义主要的路由信息,通过调用该方法使得我们的主模块可以访问路由模块中定义的所有指令。

RouterModule.forChild() 与 Router.forRoot() 方法类似,但它只能应用在特性模块中。

三.路由配置步骤

1.安装路由依赖模块  (提示:如果使用ng new xx, 执行过npm install,可忽略此步骤)

npm i --save @angular/router

 

2.使用路由

第一我们需要在 AppModule 模块中,导入 RouterModule。具体如下:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule } from '@angular/router';

import { AppComponent } from './app.component';

@NgModule({
  imports: [
    BrowserModule,
    RouterModule
  ],
  bootstrap: [
    AppComponent
  ],
  declarations: [
    AppComponent
  ]
})
export class AppModule {}

第二我们需要配置应用程序路由的相关信息 (但是需要注意:根模块中使用 forRoot(),子模块中使用 forChild())

我们需要先配置 AppModule 根模块的路由,具体如下:

// ...
import { Routes, RouterModule } from '@angular/router';

export const ROUTES: Routes = [];

@NgModule({
  imports: [
    BrowserModule,
    RouterModule.forRoot(ROUTES)
  ],
  // ...
})
export class AppModule {}

第三我们使用在子模块中使用RouterModule.forChild()创建特性模块中定义模块特有的路由信息。RouterModule.forChild() 的使用方法如下:(提示:RouterModule 是必要的,因为我们要在根模块或者其他模块中导入使用!)

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { Routes, RouterModule } from '@angular/router';

export const ROUTES: Routes = [];

@NgModule({
  imports: [
    CommonModule,
    RouterModule.forChild(ROUTES)
  ],
  //导出是必要的,因为我们要在根模块或者其他模块中导入使用
  exports: [RouterModule],
  // ...
})
export class ChildModule {}

最终配置完路由信息后,我们是使用一个名为 router-outlet 的指令告诉 Angular 在哪里加载组件。当 Angular 路由匹配到响应路径,并成功找到需要加载的组件时,它将动态创建对应的组件,并将其作为兄弟元素,插入到 router-outlet 元素中。实现如下:

<!--  -->
<div>
  <div>Header</div>
  <router-outlet></router-outlet>
  <div>Footer</div>
</div>
<!--  -->

在此路由基本就配置完了,如果有任何疑问欢迎大家留言咨询!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值