react組件

先放一個hello組件:

var MyCom = React.createClass({
    render:function(){
        return( 
            <div>
                <h1>HELLO,我是組件</h1>
                <p>我是段落</p>
            </div>
        );
    }
});
ReactDOM.render(
    <MyCom/>,
    document.getElementById('demo')
);

React.createClass({...}) 方法用于生成一個組件類 HelloMessage。
調(diào)用的時候千萬不能忘了那個‘/’,調(diào)用用的時候閉合的標(biāo)簽<MyCom/>。
原生 HTML 元素名以小寫字母開頭,而自定義的 React 類名以大寫字母開頭,比如 MyCom 不能寫成 myCom 。除此之外還需要注意組件類只能包含一個頂層標(biāo)簽例如上面栗子的(div),否則會報錯。

上面的栗子如果想要動態(tài)傳參數(shù)的話可以通過this.props

var MyCom = React.createClass({
    render:function(){
        return( 
            <div>
                {/*<h1>HELLO,我是組件</h1>
                <p>我是段落</p>*/}
                親親的{this.props.name}
            </div>
        );
    }
});
ReactDOM.render(
    <MyCom name="我的寶貝"/>,
    document.getElementById('demo')
);

輸出:親親的我的寶貝

注意:在添加屬性時, class 屬性需要寫成 className ,for 屬性需要寫成 htmlFor ,這是因為 class 和 for 是 JavaScript 的保留字。

最后來一個復(fù)雜的復(fù)合組件結(jié)尾,把很多個不同功能的功能組件組合成一個組件。

var Song = React.createClass({
    render:function(){
        return( 
            <div>
                <span>{this.props.song}</span>-<span>來自XX專輯</span>
            </div>
        );
    }
});
var Name = React.createClass({
    render:function(){
        return <p>{this.props.name}</p>
    }
});
var Info = React.createClass({
    render:function(){
        return(
            <div>
                <Song song={this.props.song}/>
                <Name name={this.props.name}/>
            </div>
        );
    }
});

ReactDOM.render(
    <Info  name="周華健" song="親親的我的寶貝"/>,
    document.getElementById('demo')
);

輸出效果:

復(fù)合組件.PNG

注意React類名首字母大寫(Name ,Song ,Info)。
在Info組件調(diào)用其他組件的時候,要注意將屬性名(song , name)也寫進(jìn)去(<Song song={this.props.song}/>)。這里的song和name屬性,對應(yīng)最后調(diào)用的render里的Info提供的屬性名(<Info name="周華健" song="親親的我的寶貝"/>,)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容