【Angular】路由基础、路由传递数据

前言

路由是 Angular 应用程序的核心,它加载与所请求路由相关联的组件,以及获取特定路由的相关数据。这允许我们通过控制不同的路由,获取不同的数据,从而渲染不同的页面。

路由相关对象

名称简介
Routes路由配置,保存着那个URL对象展示那个组件,以及在那个RouterOutlet中展示组件
RoutesOutlet在Html中标记路由内容呈现位置的展位符指令
Router负责在运行时执行路由的对象,可以通过调用其navigate()和navigatebyUrl()方法来导航到一个指定的路由
RouterLink在Html中声明路由导航用的指令
ActivatedRoute当前激活的路由对象,保持着当前路由的信息,如路由地址,路由参数等

创建路由

1.ng new router -routing
2.app-routing.module.ts中会引入 AppRoutingModule { }模块,在app-routing.module.ts中配置路由,里边是一组路由对象,最少有路径和组件构成,这是导航到某一路径上,就会显示相应的组件
在这里插入图片描述
3.app.compoent.html中会有路由插坐 <.router-outlet><./router-outlet>,组件内容显示在路由插座后
4.在app.component.html里指定路由导航的指令(导航路由)

通过链接导航:
<a [routerLink]="['/home']">主页</a>
<a [routerLink]="['/product',1]" [queryParams]="{id:1}">商品详细</a>
<input type="button" value="商品详情" (click)="toProductDetails()">
<router-outlet></router-outlet>

通过在后台router掉方法传递:(前端只需要调toProductDetails()方法就可以)在这里插入图片描述

当用户输入不存在的路由地址

当路径输入错误,输入不存在的路由地址,网页将什么也不验收,控制台会报错,这时候需要通配符**
1.首先生成一个组件ng g component code404,只要地址不存在就显示这个组件,在当前组件的前台输入页面不存在
在这里插入图片描述
2.在路由里添加一个新的配置,通配符路由。
在这里插入图片描述

子路由

<a [routerLink]="['./']">商品描述</a>
<a [routerLink]="['./seller',99]">销售员信息</a>
<router-outlet></router-outlet>

app-routing:

const routes: Routes = [
  {path:'',redirectTo:'/home',pathMatch:'full'},
  {path:'home',component: HomeComponent},
  {path:'product/:id',component:ProductComponent,children:[
   {path:'',component:ProductDescComponent},
   {path:'seller/:id',component:SellerInfoComponent },
  ]}, 
  {path:'**',component:Code404Component},
];

在路由时传递数据3种

  • 在查询参数中传递数据
    在这里插入图片描述
    在商品组件的后端查询ActivatedRoute.queryParamsd的参数
    在这里插入图片描述
    通过差值表达式,显示在商品组件的页面上
    在这里插入图片描述
  • 在Url中传递数据
    1.修改路由配置中的path属性,使其可以携带参数
    2.修改路由链接的参数
    在这里插入图片描述
    3.在商品组件后端取值,这是拿到了从uml拿到了id
    在这里插入图片描述
  • 在路由配置中传递参数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值