3、React中的状态(this.state)
发布时间:2020-12-15 04:42:04 所属栏目:百科 来源:网络整理
导读:一、什么是state state表示react组件内部的一种状态,通过组件内的getInitialState函数,可以为组件的初始状态赋值,当组件的状态发生改变时,组件会重新渲染。官方对state的说明如下: 组件其实是状态机(State Machines) React 把用户界面当作简单状态机
一、什么是state
state表示react组件内部的一种状态,通过组件内的getInitialState函数,可以为组件的初始状态赋值,当组件的状态发生改变时,组件会重新渲染。官方对state的说明如下:
组件其实是状态机(State Machines)React 把用户界面当作简单状态机。把用户界面想像成拥有不同状态然后渲染这些状态,可以轻松让用户界面和数据保持一致。 React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM)。React 来决定如何最高效地更新 DOM。 二、如何使用state
通过setState函数,可以为组件指定一个状态,当这个状态发生改变时,组件会自动重新渲染,下面的代码展示了state的用法:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>State</title> <script type="text/javascript" src="../react-0.13.0/build/react.js"></script> <script type="text/javascript" src="../react-0.13.0/build/JSXTransformer.js"></script> </head> <body> <div id="container"></div> <script type="text/jsx"> var HelloWorld = React.createClass({ getInitialState: function() { return { inputContent: 'World' }; },handleChange: function(event){ this.setState({inputContent: event.target.value}); },render: function() { return ( <div> Hello <span>{this.state.inputContent}</span> <br/><input type="text" onChange={this.handleChange} /> </div> ); } }); React.render( <HelloWorld />,document.getElementById('container') ); </script> </body> </html>在浏览器中,以上代码执行的效果如下:
初始情况显示如下:
当输入框中的内容发生改变时,Hello后面的字符串会跟着变化成输入的内容:
下面解释以上代码:
首先我们在HelloWorld组件中实现了getInitialState函数,该函数返回的是初始时组件的状态值,这里我们返回了一个对象,对象内部有一个inputContent值,在组件的render函数中,我们渲染了一个输入框,并且给输入框加上了事件监听,当输入框中内容发生改变时,会执行handleChange函数,在handleChange函数内部,通过this.setState函数,更新了组件的状态,更新状态时组件会自动重新渲染,所以在输入框中输入的内容会同步显示在页面上,另外,在<span>标签中,通过{this.state.inputContent},获取了state对象中的inputContent的值。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |