React学习(八)this.state
2017-07-18 15:42
344 查看
组件免不了要与用户互动,React 的一大创新,就是将组件看成是一个状态机,一开始有一个初始状态,然后用户互动,导致状态变化,从而触发重新渲染 UI
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
<script src="D:/ReactDom/build/react.min.js"></script>
<script src="D:/ReactDom/build/react-dom.min.js"></script>
<script src="D:/ReactDom/build/browser.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">
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')
);
</script>
</body>
</html>
上面代码是一个 LikeButton 组件,它的 getInitialState 方法用于定义初始状态,也就是一个对象,这个对象可以通过 this.state 属性读取。当用户点击组件,导致状态变化,this.setState 方法就修改状态值,每次修改以后,自动调用 this.render 方法,再次渲染组件。
由于 this.props 和 this.state 都用于描述组件的特性,可能会产生混淆。一个简单的区分方法是,this.props 表示那些一旦定义,就不再改变的特性,而 this.state 是会随着用户互动而产生变化的特性。
<html>
<head>
<meta charset="UTF-8" />
<title>Hello React!</title>
<script src="D:/ReactDom/build/react.min.js"></script>
<script src="D:/ReactDom/build/react-dom.min.js"></script>
<script src="D:/ReactDom/build/browser.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">
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')
);
</script>
</body>
</html>
上面代码是一个 LikeButton 组件,它的 getInitialState 方法用于定义初始状态,也就是一个对象,这个对象可以通过 this.state 属性读取。当用户点击组件,导致状态变化,this.setState 方法就修改状态值,每次修改以后,自动调用 this.render 方法,再次渲染组件。
由于 this.props 和 this.state 都用于描述组件的特性,可能会产生混淆。一个简单的区分方法是,this.props 表示那些一旦定义,就不再改变的特性,而 this.state 是会随着用户互动而产生变化的特性。
相关文章推荐
- 初学React,setState后获取到的thisstate没变,还是初始state?
- react学习笔记--- 状态(state)
- react demo13 (根据组件属性状态this.state实现表单实时监控)
- React学习之State与生命周期基友情(四)
- React学习(五)this.props.children
- react学习笔记之state以及setState的使用
- React学习笔记---Props&State
- react学习笔记 item4 --- 状态(state)
- React Native 学习笔记(四)-- State和Props
- React this.state
- react:undefined is not a function(this.State({flag:true,}))
- React native props state 初步学习-day1
- react 蜜汁state烦恼 【初始化state报错:null is not a object (evaluating ‘this.state.value’)】
- 关于react this.setState is not a function 的报错问题解决
- React学习—Props和State
- [React网络整理]React之State的学习笔记
- 初学React,setState后获取到的thisstate没变,还是初始state?
- React学习笔记(2)-React.createClass、this.props.children
- react学习笔记之setState方法注意事项