app.routes.ts 文件中文件路径上的双星号是什么意思?

What does double asterisk on file path mean in app.routes.ts file?

我有一个 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 进行路径匹配。路由器采用您的路径并尝试将其与数组对象中注册的路径进行匹配,直到找到匹配项。此搜索过程可以是精确搜索或与 wildCard

匹配

** 通配符将始终 return 正确,无论您赋予它什么搜索值。因此,如果所有路径 return 都不匹配,则具有此通配符的路径将 return 为真,这样您的应用程序就不会出错。这样的路径用于显示 404 错误页面或重定向到主页。

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

{ 路径:'**',组件:COMPONENT_NAME}

这个路由顺序很重要,因为 Router uses a first-match wins strategy. When matching routes 如果匹配每个 URL 的通配符路由位于顶部,那么与 wildroute 配对的组件将始终被调用。按照顺序:

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

https://angular.io/guide/router#route-order