溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

React中props與state的區(qū)別

發(fā)布時間:2020-08-04 23:01:45 來源:網(wǎng)絡(luò) 閱讀:6279 作者:shiqidelvtu 欄目:開發(fā)技術(shù)

首先,props與state是React組件的兩種方法。

  1. 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ù)進行對比,然后運算使用最快的方法進行的渲染。

向AI問一下細(xì)節(jié)

免責(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)容。

AI