3
當我想要「組件化」小部分應用程序時,我發現這種反應非常合適,但我不確定要製作完整的組件應用程序, SPA。Reactjs SPA應用程序 - 作爲組件的一切(性能和實踐)
在我的例子中,我有一個菜單和一個內容位置的「視圖」,也是其他組件。
我發現要解決這個問題的方法是構建一個菜單組件,並在其渲染方法上檢查選擇了哪個選項並將其顯示在這個內容位置,它僅僅是render方法內的一個switch case(Smells但是很容易修復)
var MenuComponent = React.createClass({
getInitialState: function() {
return { selectedPage: '' }
},
handleMenuClick: function(e) {
this.setState({ selectedPage: e.target.attributes['data-page'].value});
},
render: function() {
return (
<div className='main'>
<ul class='menu'>
<li><button onClick={this.handleMenuClick} data-page='applicantList'>Applicant List</button></li>
<li><button onClick={this.handleMenuClick} data-page='applicantForm'>Applicant Form</button></li>
</ul>
<div className='content'>
{function() {
switch(this.state.selectedPage) {
case 'applicantList':
return <ApplicantList />
case 'applicantForm':
return <ApplicantForm />
default:
return <h1>Select a Page</h1>
};
}.bind(this)()}
</div>
</div>
);
}
});
從這一點我想像一切都是一個組件,並有他們的子組件等等。我想知道這種方法是否是一種很好的做法,是否存在性能或可維護性等缺陷(我發現單元測試更容易)。
謝謝本。對性能的任何考慮?假設我有30個視圖,其中每個視圖將被分解爲許多其他組件,狀態處理等等。在我提供的例子中,它必須要求所有這些組件。 –
組件非常便宜,幾乎沒有任何性能影響。實際上,使用更多的組件使您有機會以['shouldComponentUpdate'方法](http://facebook.github.io/react/docs/component-specs.html#updating-shouldcomponentupdate)的形式進行_more_優化正確的地方。 –