如何使用React路由而不是express

时间:2018-05-09 07:53:27

标签: reactjs express

我谷歌很多,大多数用户都与我的问题相反。

我有一个使用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解决它。但不确定它是如何工作的。

1 个答案:

答案 0 :(得分:0)

当您执行实际的网络请求(像锚<a href="/login">Login</a>或AJAX调用一样的完整页面加载)时,浏览器会联系快速应用程序,后者又会解析URL并将其映射到某个功能。

react-router路由仅存在于JS应用程序中,需要其他导航方式,而不是<a/> html标记,您可以使用<Link/>反应组件。
当然有一些编程方式可以在路线之间导航,例如更改react-router提供的不同history对象

主要问题是快递应用程序(服务器)不知道任何方式的反应路由,并且可以拥有自己的一组路由,一个好的做法是在服务器上设置通配符(*)路由将触发所有请求并将主html文件返回到浏览器,浏览器将加载反应应用程序,允许react-router解析URL并呈现所需组件。