React入门04-组件的交互this.state属性
来源:互联网 发布:jquery.countdown.js 编辑:程序博客网 时间:2024/05/06 15:15
一、React组件是状态机
1.1 状态理解
React的数据流:数据由父节点向下传递到子节点(由外到内传递),如果顶层组件某个prop改变,React会向下传递,重新渲染所有使用过该属性的组件。
react组件是一个状态机,组件都有一个初始状态,通过与用户的交互,使状态发生改变,然后重新渲染UI,让用户界面与数据保持一致。
在传统js中,如果数据发生了变化,我们需要操作都DOM来重新设置渲染UI,而react中只需要根据state,然后根据新的state重新渲染用户界面。1.2 state和prop都是设置数据,它们有什么区别?
1、this.props属性:由父节点传入到组件内部,只读,不可修改。组件动态传入参数的关键。
组件默认值是一个对象,会在组件使用时,把外部的传参“合并”到props属性中
2、this.state 状态:由组件自己创建,可以修改,一般由用户交互产生新的状态(数据)。
总结props和state的区别:它们都可以用来存放数据,但props不可修改(只是设置属性),state可修改(用于用户交互)
1.3 交互实例
对react组件的this.state使用大概三步:
1、创建组件 React.createClass()
2、初始化状态: getInitialState
3、根据状态渲染数据
4、设计交互改变state的逻辑:this.setState
<script type="text/babel"> var Inte=React.createClass({ doClick:function(){ if(this.state.stateNow==='on'){ this.setState({ stateNow:'off' }) }else{ this.setState({ stateNow:'on' }) } }, getInitialState:function(){ return { stateNow:'off' } }, render:function(){ return ( <div> <p>现在的状态是:{this.state.stateNow==='on'?'已开启':'已关闭'}</p> <button onClick={this.doClick}>点我改变状态</button> </div> ) } }); ReactDOM.render( <Inte />, document.querySelector('#box') ) </script>
如上:
1、通过{this.state.stateNow===’on’?’已开启’:’已关闭’}来渲染数据
2、通过绑定点击事件doClick来根据用户点击改变state。通过this.setState来改变状态值。
0 0
- React入门04-组件的交互this.state属性
- react demo12 (获取组件属性状态this.state)
- react this.state + 组件生命周期
- react demo13 (根据组件属性状态this.state实现表单实时监控)
- React this.state
- React Native探索(三)组件的Props(属性)和State(状态)
- React State属性
- react教程之this.state
- React组件的属性PropTypes
- React组件的自定义属性
- Redux和React组件的异步交互
- React入门02-react的组件
- React(props+state+组件生命周期)
- React1 创建React组件、组件的属性
- react demo6 (设置组件自身属性this.props)
- react demo7 (设置组件自身属性...this.props)
- react demo8 (设置组件自身属性this.props.children)
- React-Native 动态属性state
- JNI开发之c代码中LOG打印调试信息
- React入门03-react中操作组件的dom节点
- Java内存区域 对象 读笔
- HDU 2034 人见人爱A-B
- |BZOJ 2199|2-SAT|[Usaco2011 Jan]奶牛议会
- React入门04-组件的交互this.state属性
- 组装电脑(较难题:贪心+模拟(包含C++中STL容器的运用))
- 打造自己的Android源码学习环境之三:在虚拟机中安装Ubuntu(下)
- 1055. The World's Richest (25)
- Longest Substring Without Repeating Characters
- |算法讨论|2-SAT 学习笔记
- 搭建简单的node+express+mongodb项目
- Timofey and a tree
- addr2line探秘(没有core怎么办)