我真的不明白我们如何在通用(同构)服务器端呈现反应应用程序中从数据库中获取数据。我们无法在componentWillMount()等中执行此操作...因为它是javascript,在客户端工作!没有任何与DB的连接。怎么回事?
我需要使用来自DB的数据渲染html。服务器应返回带有数据的HTML。处理承诺的行动,这就是为什么他们在呈现之前不会返回数据。
使用ajax-requests反应获取数据。但我们是否需要发送多个ajax请求来呈现一个页面?...
嗯,这很令人困惑。
答案 0 :(得分:0)
您可以在隐藏的html组件中以及在服务器端加载网站时从服务器呈现数据。在view.like中显示那些
<div id="load-first" style="display:none">{{your_data}}</div>
现在当页面加载然后渲染内部html的json数据或视图中的其他内容,如
import React, {Component} from 'react';
class MyComponent extends Component{
constructor(props){
super(props);
this.state={myData: {}}
}
componentDidMount(){
let data = document.getElementById("load-first").innerHTML;
// if json
data = JSON.parse(data);
this.setState({myData: data});
}
render(){
return (
<div>{this.state.myData}</div>
);
}
}