[React]プロパティとステータス
10904 ワード
属性と意味と使い方(props)
3つの付与方法
1.
var style = {
color: "red",
border: "1px solid #000",
};
var HelloWorld = React.createClass({
render: function () {
return Hello, {this.props.name ? this.props.name : "World"}
;
}
});
var HelloUniverse = React.createClass({
getInitialState: function () {
return {name: ''};
},
handleChange: function (event) {
this.setState({name: event.target.value});
},
render: function () {
return
this.state.name}>
"text" onChange={this.handleChange}/>
}
});
ReactDOM.render(
, document.body)
2.
var style = {
color: "red",
border: "1px solid #000",
};
var HelloWorld = React.createClass({
render: function () {
return Hello, {this.props.name1 + ' ' + this.props.name2}
;
}
});
var HelloUniverse = React.createClass({
getInitialState: function () {
return {
name1: 'Tim',
name2: 'John'
};
},
handleChange: function (event) {
this.setState({name1: event.target.value});
},
render: function () {
return
this.state}>
"text" onChange={this.handleChange}/>
}
});
ReactDOM.render(
, document.body)
3.setProps形式:コンポーネントによって属性を更新し、コンポーネント内部で属性を変更することはできません.コンポーネント設計の原則に反するため(できるだけ避ける)
var HelloWorld = React.createClass({
render: function(){
return Hello, {this.props.name}
}
});
var instance = ReactDOM.render(, document.body);
instance.setProps({name: 'wilcohuang'});
状態の意味と使い方(state)
属性とステータスの比較
同じ点:
-
ツールバーの
≪ステータス|Status|emdw≫
親コンポーネントから初期値を取得できますか?
yes
no
親コンポーネントで変更できるかどうか
yes
no
コンポーネントの内部にデフォルト値を設定できますか?
yes
yes
コンポーネント内で変更可能
no
yes
サブアセンブリの初期値を設定できますか?
yes
no
サブアセンブリの値を変更できますか?
yes
no
コンポーネントが実行中に変更する必要があるデータはステータスになります.
属性と状態実戦
var Content = React.createClass({
render: function () {
return {this.props.selectName}
;
},
});
var Comment = React.createClass({
getInitialState: function () {
return {
names: ['Tim', 'John', 'Hank'],
selectName: '',
};
},
handleSelect: function () {
this.setState({selectName: event.target.value});
},
render: function () {
var options = [];
for (var option in this.state.names) {
options.push();
}
return
this.state.selectName}>
;
},
});
ReactDOM.render(, document.body);
var Content = React.createClass({
getInitialState: function () {
return {
// text: "reply To: " + this.props.selectName, // ,getInitialState , selectName ,
inputText: "",
};
},
handleChange: function (event) {
this.setState({inputText: event.target.value});
},
handleSubmit: function () {
console.log('reply to ' + this.props.selectName + "
" + this.state.inputText);
},
render: function () {
return
;
},
});
var Comment = React.createClass({
getInitialState: function () {
return {
names: ['Tim', 'John', 'Hank'],
selectName: '',
};
},
handleSelect: function () {
this.setState({selectName: event.target.value});
},
render: function () {
var options = [];
for (var option in this.state.names) {
options.push();
}
return
this.state.selectName}>
;
},
});
ReactDOM.render(, document.body);