两个通配符路由在反应路由中意味着什么?

我试图了解kirasoft的react-starter-kit,注意到他们的路由有两个“*”通配符路由条目。 为什么有两个,优先顺序是什么? 第一条路线似乎设置了整体的应用程序,然后第二个似乎引发了默认的内容处理程序…都被解雇了,如果是的话,这两者之间的逻辑是什么,他们都只是顺序触发,并得到追加不知何故在一起的答复?

import React from 'react'; import Router from 'react-routing/src/Router'; import http from './core/HttpClient'; import App from './components/App'; import ContentPage from './components/ContentPage'; import ContactPage from './components/ContactPage'; import LoginPage from './components/LoginPage'; import RegisterPage from './components/RegisterPage'; import NotFoundPage from './components/NotFoundPage'; import ErrorPage from './components/ErrorPage'; const router = new Router(on => { on('*', async (state, next) => { const component = await next(); return component && <App context={state.context}>{component}</App>; }); on('/contact', async () => <ContactPage />); on('/login', async () => <LoginPage />); on('/register', async () => <RegisterPage />); on('*', async (state) => { const content = await http.get(`/api/content?path=${state.path}`); return content && <ContentPage {...content} />; }); }) 

第一个catch-all路由中的关键是await next() ,它将引用从路由树中更远的匹配返回的下一个组件,然后将其插入为<App context={state.context}>{component}</App> 。 如果路线与'/contact''/login''/register'不匹配,所有第二个catch-all将返回孩子。 你可以想象更多的捕获所有的“孩子”更深入树的路由更深的组件嵌套。