我谷歌很多,大多数用户都与我的问题相反。
我有一个使用webpack的React + Express应用程序构建,我有反应路由,我想使用它们,但是当我尝试获取某些内容时,它会转到Express应用程序。
我之前使用默认框create-react-app
对其进行了测试,但它确实有效。现在我使用webpack创建自己的构建,并且不能不知道如何使其工作。
我的路线:
<BrowserRouter>
<Switch>
<Route exact path='/' component={App}/>
<Route exact path='/login' component={Login}/>
<Route exact path='/reg' component={Register}/>
</Switch>
</BrowserRouter>
我认为可以使用registerServiceWorker.js解决它。但不确定它是如何工作的。
答案 0 :(得分:0)
当您执行实际的网络请求(像锚<a href="/login">Login</a>
或AJAX调用一样的完整页面加载)时,浏览器会联系快速应用程序,后者又会解析URL并将其映射到某个功能。
react-router
路由仅存在于JS应用程序中,需要其他导航方式,而不是<a/>
html标记,您可以使用<Link/>
反应组件。
当然有一些编程方式可以在路线之间导航,例如更改react-router
提供的不同history对象
主要问题是快递应用程序(服务器)不知道任何方式的反应路由,并且可以拥有自己的一组路由,一个好的做法是在服务器上设置通配符(*)路由将触发所有请求并将主html文件返回到浏览器,浏览器将加载反应应用程序,允许react-router解析URL并呈现所需组件。