我正在使用React.js處理一個項目,並對React的組成非常困惑。React.js:在Recomp.render()和React.createClass()的渲染中傳遞子組件的區別?
http://facebook.github.io/react/docs/multiple-components.html
上述鏈接給出了一個例子。它使用React.creatClass()創建三個組件。父組件和兩個子組件。父組件在渲染方法中包含JSX中的其他組件。
這個例子很清楚,但不是很「可重用」。如果我想在另一種情況下通過另一個孩子呢? React.js似乎缺乏像Backbone的觀點那樣的'擴展'方法。
後來,我發現你可以在React.render()中傳遞子組件,並使用this.props.children來合成。
var Tom = React.createClass({
render: function(){
return(
<a>This is Tom.</a>
)
}
});
var John = React.createClass({
render: function(){
return(
<a>This is John.</a>
)
}
});
var Outter = React.createClass({
componentDidMount:function(){
console.log(this.props.children);
},
render: function(){
return(
<div className="test">
{this.props.children}
</div>
)
}
});
React.render(<Outter><Tom /><John /></Outter>, document.getElementById('main'));
我認爲這很好,但這種方法和上面的例子真的有什麼不同?這種方法是在React.js中複合組件的正確方法嗎?
感謝
謝謝你的答案安德斯。你是什麼意思,仍然通過傳遞其他道具讓他們變得動態?可以通過道具傳遞組件嗎? – WalnutZ
@WalnutZ我已經通過一些澄清更新了我的帖子。 –
謝謝!現在這很清楚。對不起,我現在沒有足夠的聲望投票回答你的答案。 – WalnutZ