this.stateとthis.propsの違い
1472 ワード
Reactはコードをコンポーネントにパッケージ化し、通常のHTMLタグを挿入するようにコンポーネントを挿入し、ページにこのコンポーネントを挿入することができます.Reactの大きな革新は、コンポーネントを状態マシンとして見なし、最初に初期状態があり、その後、ユーザー間のインタラクションによって状態が変化し、レンダリングUIをトリガすることである.get Initial State方法は初期化に用いられ、初期状態、つまりオブジェクトを定義します.このオブジェクトは、this.state属性で読み込むことができます.ユーザーがコンポーネントをクリックすると、ステータスが変化します.this.set State方法はステータス値を修正します.毎回修正したら、自動的にthis.render方法を呼び出して、再度コンポーネントをレンダリングします.
var LikeButton = React.createClass({
getInitialState: function() {
return {liked: false};
},
handleClick: function(event) {
this.setState({liked: !this.state.liked});
},
render: function() {
var text = this.state.liked ? 'like' : 'haven\'t liked';
return (
<p onClick={this.handleClick}>
You {text} this. Click to toggle.
</p>
);
}
});
ReactDOM.render(
<LikeButton />,
document.getElementById('example')
);
this.propsとthis.stateはコンポーネントの特性を説明するために使用されるので、混淆が生じるかもしれません.簡単な区別方法としては、this.propsは、それらが一旦定義されると、もう変化しないという特性を表していますが、this.stateはユーザーのインタラクティブによって変化する特性です.var HelloMessage = React.createClass({
render: function() {
return <h1>Hello {this.props.name}</h1>;
}
});
ReactDOM.render(
<HelloMessage name="John" />,
document.getElementById('example')
);