我成功配置了客户端和服务器。我可以使用预加载的数据生成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将负责休息。
答案 0 :(得分:0)
通常服务器端渲染仅用于第一次渲染。在以下路线更改时,应用程序与单页应用程序的工作方式相同(即调用某些api,将其保存在某些状态并渲染它)。在这种情况下,调用服务器来呈现html将无法正常工作。
您现在可以使用的另一个选项,就像您调用服务器来呈现html一样,它只使用普通的html链接,而不是反应路由器,这基本上可以按照您的描述进行操作(调用服务器,获取html并渲染它)
答案 1 :(得分:0)