您好,登錄后才能下訂單哦!
首先,props與state是React組件的兩種方法。
props,可以在組件中來獲取this.props的屬性。
var Helloreact=React.createClass({ render:function(){ return <h2>Hello {this.props.name}</h2> } }); ReactDOM.render( <Helloreact name="BOOM" />, document.getElementById('example2') ); //Hello BOOM
2.state,獲取的是更新后的數(shù)據(jù),是通過用戶的狀態(tài)來更改state。
var Helloreact=React.createClass({ getInitialState : function(){ return {name:'BOOM'}; }, render:function(){ return <h2>Hello {this.state.name}</h2> } }); ReactDOM.render( <Helloreact/>, document.getElementById('example2') ); //Hello BOOM
3.在這里,可以通過props獲取組件的屬性,然后用state動態(tài)的更新。
var HelloMe = React.createClass({ getDefaultProps:function(){ return{ value:'props' }; }, getInitialState : function(){ return {value:'state'}; }, handleChange:function(event){ this.setState({value:event.target.value}); }, clickhandle:function(event){ this.setState({value:" "}); }, render:function(){ var value= this.state.value; return <div> <input type="text" value={value} onChange={this.handleChange}/> <h2>Hi {this.props.value} {value}</h2> <button onClick={this.clickhandle}>清除{value}</button> </div>; } }); ReactDOM.render( <div style={myStyle}><HelloMe/></div>, document.getElementById('example1') );
所以言之,相對于靜態(tài)的狀態(tài)下使用props會更好一些,動態(tài)的數(shù)據(jù)就需要使用state,
而React中,是虛擬的DOM樹,是遍歷全局后對數(shù)據(jù)進行對比,然后運算使用最快的方法進行的渲染。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。