我是React的新手,所以請不要嚴格判斷。 我在服務器上呈現我的React應用程序,並希望在前端執行代碼。 應用程序使用樣式正確呈現,並且沒有警告或錯誤,儘管處於空狀態,因爲我正在使用應在正面執行的API,現在可以正常運行。ReactJS服務器端渲染和componentDidMount方法
我瞭解服務器渲染成分,因爲服務器渲染和安裝在服務器組件,它並沒有叫componentDidMount()
方法 應該做我的API調用和其他工作人員
這是我的組件
import React from 'react';
import {render} from 'react-dom';
import SpComparison from './spComparison.jsx';
import Comparison from './comparison.jsx';
import AnalystRatings from './analystRatings.jsx';
export default class Insights extends React.Component {
constructor(props){
super(props);
this.state = {
charts: []
}
let _this = this;
}
componentDidMount() {
console.log("I want to do log on front end side, but can't")
}
render() {
let charts = this.state.charts.map(function(i){
if (i.type == 'comparison'){
return <Comparison key={ i.id } config={ i.config } />
}
else if (i.type == 'sp-comparison'){
return <SpComparison key={ i.id } config={ i.config } />
}
if (i.type == 'analyst-ratings'){
return <AnalystRatings key={ i.id } config={ i.config } />
}
});
return (
<div id="insights" className="container">
<div className="row">
<div className="col-md-3 hidden-md-down" style={{
marginTop: 10
}}>
<ul className='finstead-tabs'>
<li className="finstead-tabs-header">
Categories
</li>
<li>
<a href='' className="finstead-active-tab">Performance</a>
</li>
<li>
<a href=''>Financial</a>
</li>
<li>
<a href=''>Valuation</a>
</li>
<li>
<a href=''>Shares</a>
</li>
<li>
<a href=''>Outlook</a>
</li>
</ul>
</div>
<div className="col-xs-12 col-md-9">
{ charts }
</div>
</div>
</div>
)
}
}
我想我是做得不對的,所以請幫助我。
注意
在最高級別的組件我沒有叫ReactDOM.render
可能是導致此行爲?
tutorial,我使用例如
在你的情況下調用ReactDOM.render將是一件大事,因爲你的服務器端呈現的HTML是基於沒有狀態。所有基於您構建客戶端的狀態的額外HTML都需要被分配到DOM中,這將需要額外的時間。我不明白你爲什麼要在這裏做服務器端渲染,你的速度收益是微不足道的。 –
正如我所提到的,我仍然在學習,並且完全理解服務器端渲染在沒有數據的情況下是無用的,所以一切都有它的時間,現在學習Redux並希望爲服務器端渲染創建狀態,謝謝! –