React(5) --绑定函数事件
绑定函数事件
在以类继承的方式定义的组件中,为了能方便地调用当前组件的其他成员方法或属性(如:this.state),通常需要将事件处理函数运行时的 this 指向当前组件实例。
run(){
alert('我是一个run方法')
}
<button onClick={this.run}>执行方法</button>
//方法不需要加(),加了(),一旦页面加载进来就执行了
绑定事件处理函数this的几种方法:
方法1:
run(){
alert(this.state.name)
}
<button onClick={this.run.bind(this)}>按钮</button> //不绑定this的话,上面的方法里面的this就指向不了,拿不到数据
方法2:
constructor(props){
super(props); //固定写法
this.state={
name:'我是一个home组件'
}
//构造函数中改变
this.run = this.run.bind(this);
}
run(){
alert(this.state.name)
}
<button onClick={this.run}>按钮</button>
方法3:
//直接使用箭头函数
run=()=> {
alert(this.state.name)
} <button onClick={this.run}>按钮</button>
函数方法里传值,改变state的值
setName=(str)=>{
//改变state的值
this.setState({
username:str
})
}
<button onClick={this.setName.bind(this,'张三')}>执行方法传值</button>
<button onClick={this.setName.bind(this,'张三','李四')}>执行方法传值</button>
获取dom节点方法
方法1:
run=(event)=> {
//alert(event.target) //获取执行事件的dom节点
//alert(event.target.getAttribute('aid')) //获取dom的属性
event.target.style.background='red';
}
<button aid="123" onClick={this.run}>按钮</button>
方法2:
import React from 'react';
class List extends React.Component {
constructor(props) {
super(props);
this.state = {
username:''
};
}
inputChange=()=>{
/*
获取dom节点
1、给元素定义ref属性
<input ref="username" />
2、通过this.refs.username 获取dom节点
*/
let val=this.refs.username.value;
this.setState({
username:val
})
}
getInput=()=>{
alert(this.state.username);
}
//键盘事件
inputKeyUp=(e)=>{
console.log(e.keyCode);
if(e.keyCode==){
alert(e.target.value);
}
}
inputonKeyDown=(e)=>{
console.log(e.keyCode);
if(e.keyCode==){
alert(e.target.value);
}
}
render() {
return (
<div>
{/* 获取表单的值
1、监听表单的改变事件 onChange
2、在改变的事件里面获取表单输入的值 ref获取
3、把表单输入的值赋值给username this.setState({})
4、点击按钮的时候获取 state里面的username this.state.username
*/}
<input ref="username" onChange={this.inputChange}/> <button onClick={this.getInput}>获取input的值</button>
<br /><br /> <hr />
<h2>键盘事件</h2>
<input onKeyUp={this.inputKeyUp}/>
<br /><br />
<input onKeyDown={this.inputonKeyDown}/>
</div>
);
}
}
export default List;
React(5) --绑定函数事件的更多相关文章
- react事件绑定,事件传参,input单向数据绑定
import React, { Component } from 'react'; class New extends Component { constructor(props){ super(pr ...
- 查看jquery绑定的事件函数
作为技术狂热分子的职业本能,看到一个技术产品的功能,总会忍不住想知道它是怎么被实现的.比如我每每看到别人网站一个很炫的界面或者很酷的功能,就忍不住打开了浏览器的控制台... 好,不扯远,说说当你想看到 ...
- js事件绑定函数
js中事件绑定方法大致有三种: 1.在DOM元素中绑定 <input onclick="alert('在DOM中绑定')" type="button" v ...
- JS中事件绑定函数,事件捕获,事件冒泡
1 事件绑定:事件与函数绑定以及怎么取消绑定 1.1 元素.onclick这种形式,如下: <div id="div1">aaa</div> <scr ...
- 兼容IE9以下和非IE浏览器的原生js事件绑定函数
事件绑定函数的demo如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "htt ...
- jQuery--事件, 事件绑定, 阻止事件冒泡, 事件委托,页面载入后函数
1.常用事件, 按住shift键实现同步选择效果,搜索框联想效果 2.阻止事件冒泡 3.事件委托 4.使用 $(document).ready(function (){...}) 实现文件加载完绑定事 ...
- JS+Zero Clipboard swf复制到剪贴板 兼容浏览器(bind事件绑定函数)
转自http://www.ipmtea.net/css_ie_firefox/201107/07_499.html 1.ZeroClipboard其实是国外的一个js类库,源码结构如: var Zer ...
- js- DOM事件之按钮绑定函数注意事项
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- React生命周期及事件详解
引用原文:http://blog.csdn.net/limm33/article/details/50942808 一.组件的详细说明和生命周期ComponentSpecs and Lifecycle ...
随机推荐
- springboot操作rabbitmq
////DirectExchange directExchange = new DirectExchange("test.direct");////amqpAdmin.declar ...
- centos 6.5 安装 dubbo 管理中心
从http://pan.baidu.com/s/1dDlI7aL下载dubbo-admin-2.5.4.war包,将下载的包放在tomcat的webapps目录,启动tomcat自动解压该war包,然 ...
- Task8.循环和递归神经网络
RNN提出的背景: RNN通过每层之间节点的连接结构来记忆之前的信息,并利用这些信息来影响后面节点的输出.RNN可充分挖掘序列数据中的时序信息以及语义信息,这种在处理时序数据时比全连接神经网络和CNN ...
- Java缓冲字符读取
public class BufferedReaderDemo { public static void main(String[] args) throws IOException { // 创建流 ...
- Jira插件安装
以下操作需要反编译 1.反编译的jar包 1)E:\JIRA安装路径\atlassian-jira\WEB-INF\atlassian-bundled-plugins\atlassian-univer ...
- Windows系统安装教程
身边很多朋友电脑系统因为这样那样的问题不能开机,需要重装系统,但是又不知道从何下手.很不建议去电脑店重装系统,因为电脑店用的操作系统很多都有捆绑软件和主页捆绑,对电脑体验影响很坏.这篇教程只是针对新手 ...
- R语言预测实战(第一章)
本例使用forecast包中自带的数据集wineind,它表示从1980年1月到1994年8月, 由葡萄酒生产商销售的容量不到1升的澳大利亚酒的总量.数据示意如下: #观察曲线簇 len=1993-1 ...
- Python_013(面向对象概念)
一.面向对象 1.面向对象几个概念问题: a:类:具有相同属性和技能的一类事物.用代码表示就是,我类里面有一些静态变量和方法是大家共有的; b:对象:具体的类的表现.在代码中就是,调用类的方法或变量传 ...
- Appium解决native+webview混合型APP(公众号、小程序)切换webview后元素无法定位问题
问题:最近在做一个安卓+H5混合开发的APP自动化测试,发现在从native切换到webview后,元素仍然无法找到,报错:no such element 思路:于是思考webview会不会像web页 ...
- SecondContract 接口类
package com.test.mvp.mvpdemo.mvp.v6; import com.test.mvp.mvpdemo.mvp.v6.basemvp.IBasePresenter;impor ...