React学习笔记(5)--事件
发布时间:2020-12-15 04:49:26 所属栏目:百科 来源:网络整理
导读:1.事件处理函数的使用 组件: React 自有方法 用户定义方法 事件处理函数可以接受event参数; 如之前用过的: //监听内容的变化并且记录在状态中 handleChange: function(event){ this.setState({inputText: event.target.value}); },//添加提交按钮并打印结
1.事件处理函数的使用 组件:
事件处理函数可以接受event参数;
如之前用过的:
//监听内容的变化并且记录在状态中 handleChange: function(event){ this.setState({inputText: event.target.value}); },//添加提交按钮并打印结果 handleSubmit: function () { console.log("reply To" + this.props.selectName + "n" + "n" + this.state.inputText); },
编写完事件后需要绑定事件处理函数
如:
onChange={this.handleChange} <pre class="html" name="code">onChange={this.handleChange}
事件;
1》触摸类事件:只会在移动设备中产生,对手的移动位置进行检测并做出响应
2》键盘类事件:
3》剪切类事件
4》 表单类事件
5》 焦点类事件
6》UI元素: 元素或页面的滚动事件
7》滚动事件:监听滚动位置,方向
8》鼠标类事件:
9》鼠标拖拽事件: 上传内容
实例1:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="build/react.js"></script> <script src="build/JSXTransformer.js"></script> </head> <body> <script type="text/jsx"> var style = { color : "red",border: "1px #000 solid" }; var HelloWorld = React.createClass({ handleChange: function (event) { console.log(event.target.value); },render: function () { return <div> <input onChange={this.handleChange} /> </div>; },}); React.render(<div style={style}> <HelloWorld></HelloWorld> </div>,document.body); </script> </body> </html>
2 事件对象:
event.target.value
target:事件对象的属性, 事件应得DOM元素
事件对象的属性:
1》通用属性
2》不同事件对象特有的属性
i 剪切事件:
ii 键盘事件:
iii焦点
iv 鼠标事件
v 触摸事件:
vi UI元素
vii 滚动:
实例1
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="build/react.js"></script> <script src="build/JSXTransformer.js"></script> </head> <body> <script type="text/jsx"> var HelloWorld = React.createClass({ getInitialState: function () { return{ backgroundColor:'#FFFFFF' } },handleWheel: function (event) { var newColor=(parseInt(this.state.backgroundColor.substr(1),16) + event.deltaY * 997).toString(16); newColor = '#' + newColor.substr(newColor.length - 6).toUpperCase(); this.setState({ backgroundColor: newColor }); },render: function () { console.log(this.state); return <div onWheel={this.handleWheel} style={this.state}> <p>Hello World</p> </div>; },}); React.render( <HelloWorld></HelloWorld>,document.body); </script> </body> </html>
实例2
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="build/react.js"></script> <script src="build/JSXTransformer.js"></script> </head> <body> <script type="text/jsx"> var HelloWorld = React.createClass({ getInitialState: function () { return { password: '' } },handleKeyPress: function (event) { this.setState({ password: this.state.password + event.which }); console.log(this.state) },handleChange: function (event) { event.target.value = ''; },render: function () { return <div> <input onKeyPress={this.handleKeyPress} onChange={this.handleChange}/> <p style={{'display':this.state.password.indexOf('495051')>=0 ? 'inline' :'none' }}>You got it</p> </div> },document.body); </script> </body> </html>
3 事件和状态关联
this.setState()
实例1:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <script src="build/react.js"></script> <script src="build/JSXTransformer.js"></script> </head> <body> <script type="text/jsx"> var HelloWorld = React.createClass({ getInitialState: function () { return { x:0,y:0 } },handleMouseMove: function (event) { this.setState({ x:event.clientX,y:event.clientY }) },render: function () { return <div onMouseMove={this.handleMouseMove} style={{ height:'1000px',width:'700px',backgroundColor: 'gray' }}> {this.state.x + ',' + this.state.y} </div> },document.body); </script> </body> </html>
视频课程: 极客学院
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |