在app.routes.ts文件中,文件路径上的双星号意味着什么



我有一个app.routes.ts文件,其中有一个名为appRoutes的数组。我的阵列结构是这样的:

const appRoutes: Routes = [
...
{ 
path: 'example/:example1/:example2',
loadChildren: () => import('./example/example.module').then(m => m.Example),
resolve: {
example: ExampleResolver
},
data: {
title: 'Example'
},
canActivate: [ ValidateExample ]
},
...
{
path: '**', redirectTo: '/home',
}

其中appRoutes数组中的最后一个对象是

path: '**', redirectTo: '/home'

在这种情况下,双星号意味着什么?它与有何关系

redirectTo: '/home'

path属性使用wildCard进行路径匹配。路由器获取您的路径,并尝试将其与数组对象内注册的路径匹配,直到找到匹配。这个搜索过程可以是精确的搜索或者匹配通配符

无论您给**通配符什么搜索值,它都将始终返回true。因此,如果所有路径都返回no匹配,则带有此通配符的路径将返回true,这样您的应用程序就不会出错。这样的路径用于显示404错误页面或重定向到主页。

要在Angular中设置通配符路由,请使用"**"(双星号(。此通配符路由捕获路由定义中未配置的所有路由。

{路径:"**",组件:component_NAME}

这个路由顺序很重要,因为路由器使用的是先赢后赢的策略。匹配路由时,如果匹配每个URL的通配符路由位于顶部,则与通配符路由配对的组件将始终被调用。遵循以下顺序:

  • 首先列出具有静态路径的路由
  • 空路径路由(可能有重定向(
  • 通配符路由排在最后

https://angular.io/guide/router#route-订单

最新更新