《angular2入门系列基础》——路由Route详解

前言

     小编最近做ITOO前端项目的时候遇到路由跳转传参的一个问题,所以着手系统学习了Angular的路由的知识,现在分享给大家!


内容

路由的最基本的四个对象:

名称功能介绍
Routes路由配置,保存着url对应展示哪一个组件,及RouterOutlet展示组件
RouterOutletHtml中标记路由内容呈现位置的占位符指令
Router负责运行时执行路由的对象,调用navigate()和navigateByUrl()方法导航到一个指定的路由
RouterLink在Html中声明由导航用的指令
ActivatedRoute当前激活路由对象,保存着当前路由的信息,路由地址,路由参数。

实战使用路由:
一:创建angular项目
  1.创建项目的同时创建路由

ng new routeProject --routing 

     配置如下图:
这里写图片描述

  2.创建普通的项目,然后手动添加路由ts文件:
这里写图片描述
   然后引入到app.module.ts文件中:
这里写图片描述
  两种方式下我选择了后一种,虽然第一种方式会自动创建路由文件,但是还引入了ngModule,看着非常凌乱,不如第二种方式,主要的任务就是配置Routes
注意:

主module(一般指appModule)路由配置方式:
  RouterModule.forRoot(routes); 
__________________________________________________

子module的路由配置方式:
  RouterModule.forChild(routes);

二:添加组件product

ng g c product

三:将组件的配置到app.router.ts文件中:

import { ProductComponent } from './product/product.component';
export const appRoutes=[
    {path:'product',component:ProductComponent} 
]

四:在app.component.html文件中配置路由插座,并且填写路由地址:

<a [routerLink]="['/']">主页</a>
<a [routerLink]="['/product']">商品页</a>
<router-outlet></router-outlet>

效果图:
  点击主页:
这里写图片描述
  点击商品页:url发生了变化,页面也随之变化:
这里写图片描述

  RouterOutlet主要是指定要跳转到的组件模板的位置RouterOulet下面:
这里写图片描述
  而Routerlink在模板中转换路由,他还可以带上路由参数:

//1.在路由路径中传参数
<a [routerLink]="['/product',1]">商品页</a>
//2.在查询参数中传参数
<a [routerLink]="['/product']" [queryParams]="{id:1}">商品页</a>

  第一传递参数的方法,需要修改Routes的path属性,将product的path改写成如下方式(RESTful风格):

export const appRoutes=[
    {path:'product/:id',component:ProductComponent} 
]

三:总结路由基本使用

这里写图片描述

     从图中可以明显看出来:RouterOutlet和RouterLink是在模板页面中使用的方法,而Router和ActivatedRoute是在组件的控制器中使用的;而Routes是在模块的路由的文件中配置的,主要配置属性path和component。

结语

     angular路由四个基本的路由对象已经介绍完毕,还有路由守卫,辅助路由,下文在给大家介绍,感谢浏览!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
Angular 路由Angular 框架提供的一种机制,用于管理应用程序中不同页面之间的导航。它允许你在应用程序中定义不同的路由,每个路由对应一个特定的组件或模块。 要使用 Angular 路由,首先需要在应用程序的根模块中导入 `RouterModule` 并将其添加到 `imports` 数组中。然后,在定义路由之前,你需要创建一个包含路由配置的模块。 路由配置模块可以包含以下内容: - 导入 `RouterModule` 并使用 `forRoot` 方法来配置根路由。 - 使用 `Routes` 类定义一个路由数组,其中每个路由对象都包含路径和组件的映射关系。 - 将路由数组传递给 `RouterModule.forRoot()` 方法。 例如,以下是一个简单的路由配置示例: ```typescript import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { HomeComponent } from './home.component'; import { AboutComponent } from './about.component'; const routes: Routes = [ { path: '', component: HomeComponent }, { path: 'about', component: AboutComponent } ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule { } ``` 在上面的示例中,我们定义了两个路由。路径为空时,将加载 `HomeComponent` 组件,而路径为 'about' 时,将加载 `AboutComponent` 组件。 最后,你可以在应用程序的模板中使用 `<router-outlet></router-outlet>` 标签来显示当前路由所对应的组件。 这只是 Angular 路由的基本概念,你还可以通过配置更多选项来实现更复杂的路由功能,如路由参数、子路由路由守卫等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值