【发布时间】:2018-06-15 13:22:06
【问题描述】:
我成功配置了客户端和服务器。我可以使用预加载的数据生成html,但我对一般概念有疑问。
在这一点上,我需要找到一种方法来调用服务器以在用户转到某个路线时完成这项工作。
我应该何时以及如何做到这一点?在componentWillMount 里面?
组件:<Route path="/wall" component={Wall}/>
class Wall extends Component {
componentWillMount(){
if (csr){
const { pathname, search } = this.props.location;
//to use Promise? something like that? it should trigger server to prepare html
return fetch(`'${servername}/${pathname}${search}'`);
}
if (ssr){
{{fetch data and prepare index.html}}
}
}
componentDidUpdate(prevProps, prevState) {
{{code}}
}
render() {
return (...)
}
...
General idea: user goes to /wall => client sends request to server to render it => server renders it and puts html into index.html => server responds to client with status 200 => client shows the page => updates are handled by client
我可能错了。如果我是,请纠正我。我将不胜感激任何帮助或任何其他解决方案。
编辑: 我只想将 SSR 用于第一次加载。以后CSR会负责休息。
【问题讨论】:
-
我想你没有理解 React 本身的主要概念,或者这只是我的印象。使用像 React 这样的库有什么意义?关键是渲染界面更快,因为您从服务器请求小块数据而不是整个页面,否则只需使用普通的 html 和后端服务器。
标签: reactjs redux create-react-app redux-saga server-side-rendering