我有一个使用快速服务器和create-react-app
前端的应用程序。结构看起来像这样。(不包括结构中的所有文件 - 只包括重要的文件)
Client-
build
etc
public
src-
assets
components-
landing-
landing.js
github-
github.js
steam-
steam.js
App.js
index.js
routes-
routes.js
index.js
我的 index.js 文件正在启动快速服务器,如下所示-
const express = require( 'express' );
const app = express();
const PORT = process.env.PORT || 5000;
require('./routes/routes')( app );
app.use( express.static( 'client/build' ));
app.listen( PORT, () => {
console.log( "Server is running on port 5000 " );
});
服务器端的路由文件如下——
module.exports = ( app ) => {
app.get( '/', ( req, res ) => {
console.log("Hello");
res.send( "Hello" );
});
app.get( '/steam', ( req, res ) => {
res.send( "Place for Steam!!");
});
app.get( '/github', ( req, res ) => {
res.send("Place for Github!!");
});
}
我的 app.js 文件
class App extends Component {
render() {
return (
<div className="App">
<BrowserRouter>
<div className="container">
<Route path="/" component={ Landing }/>
<Route path="/steam" exact component={ Steam } />
<Route path="/github" exact component={ Github } />
</div>
</BrowserRouter>
</div>
);
}
}
export default App;
在我的客户端,我主要关注的文件是landing.js,如下所示。
class Landing extends Component{
render(){
return(
<div className="container">
<div className="row">
<div className="col-md-6">
<div className="bg">
<img src="https://www.bleepstatic.com/content/hl-images/2016/12/23/Steam-Logo.jpg" alt="" />
<div className="overlay">
<a href="/steam" className="custombutton custombutton-white custombutton-big">Steam Info</a>
</div>
</div>
</div>
<div className="col-md-6">
<div className="bg">
<img src="https://linuxforlyf.files.wordpress.com/2017/10/github-universe1.jpg" alt="" />
<div className="overlay">
<a href="/github" className="custombutton custombutton-white custombutton-big">Github Info</a>
</div>
</div>
</div>
</div>
</div>
)
}
}
export default Landing;
在上面的组件中,我关心的是a
导致要么/steam
或/github
快速路由的标签,这是故意的,因为我想重新加载页面并且在页面上我只获取res.send
数据,这是有道理的,因为这是一个快车路线。但我想在路线上渲染我的steam
组件。/steam
(与 github 相同)。我希望我BrowserRouter
的 inApp.js
会根据路由更改组件,但事实并非如此。我是,只获取快递数据。如何在路线上呈现我的Steam
反应组件。express
'/steam'
显然,我正在以奇怪的方式混合服务器和客户端。