1、案例实现代码如下

import React, { Component } from 'react';

/**
* 特别注意this,对于传值和绑定都十分重要
*/
class Home4 extends Component{
constructor(props){
super(props);
//定义数据
this.state={
msg:'这是一个Home4组件',
name:"杨杰"
}
this.getMessage = this.getMessage.bind(this);
} run(){
alert("这是一个run方法");
} getData(){
alert(this.state.msg);
} //改变state值
setData=()=>{ this.setState({
msg:"改变msg的值"
})
}
getMessage(){
alert(this.state.msg);
}
//箭头函数
getName=()=>{
alert(this.state.name);
}
setName=(str)=>{
this.setState({
name:str
})
}
render() {
return(
<div>
Home4 index 事件方法
<br/>
方法:{this.state.name}
<br/>
<button onClick={this.run}>执行方法,通过this.方法名</button>
<br/>
<p>方式1:通过this.方法名.bind(this)将this对象传递给getData()方法体内的this对象</p>
<button onClick={this.getData.bind(this)}>执行方法1</button>
<br/>
<p>方式2:在构造函数,通过this.getMessage = this.getMessage.bind(this)这种方式赋值</p>
<button onClick={this.getMessage}>执行方法2</button>
<br/>
<p>方式3:在构造函数,通过this.getMessage = this.getMessage.bind(this)这种方式赋值</p>
<button onClick={this.getName}>执行方法3</button> <br/>
<button onClick={this.setData}>改变state中的值</button> <br/>
<button onClick={this.setName.bind(this,"zhangsan")}>执行方法传值</button> </div>
)
}
}
export default Home4;

React事件方法、React定义方法的几种方式、获取数据、改变数据、执行方法传值的更多相关文章

  1. ajax验证用户名 当用户名框的数据改变时 执行ajax方法

    ajax验证用户名 当用户名框的数据改变时 执行ajax方法 <html xmlns="http://www.w3.org/1999/xhtml" ><head ...

  2. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  3. JavaScript学习12 JS中定义对象的几种方式【转】

    avaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. ...

  4. (六)javascriptJS中定义对象的几种方式(转)

    JavaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象 ...

  5. PHP定义字符串的四种方式

    1.简介 在PHP中这门语言中,因为是弱类型语言,因此使用变量时不需提前定义即可使用. 我们在使用php进行开发的时候,大多数使用双引号.单引号进行定义字符串.既然有这两种方式,那么他们之间肯定是有区 ...

  6. vue2.* 事件 定义方法 执行方法 获取数据 改变数据 执行方法传值 以及事件对象 05

    <template> <div id="app"> <button v-on:click="run1()">执行事件的第一种 ...

  7. vue 定义方法执行方法 获取数据 改变数据 执行方法传值 以及事件对象

    <template> <div id="app"> <!-- <img v-bind:src='url' /> <img :src= ...

  8. Vue事件 定义方法执行方法 获取数据 改变数据 执行方法传值 以及事件对象

    <template> <div id="app"> <!-- <img v-bind:src='url' /> <img :src= ...

  9. 使用react定义组件的两种方式

    react组件的两种方式:函数定义,类定义 在定义一个组件之前,首先要明白一点:react元素(jsx)是react组件的最基本的组成单位 组件要求: 1,为了和react元素进行区分,组件名字首必须 ...

  10. Collections.sort方法对list排序的两种方式

    Collections.sort( )分为两部分,一部分为排序规则,一部分为排序算法 . 规则用来判断对象,算法则考虑如何进行排序 对于自定义对象,sort()不知道规则,所以无法比较,这种情况下一定 ...

随机推荐

  1. copy模块与fetch模块

    copy:将本地机器上的文件拷贝到远程机器 fetch:将远程机器上的文件拷贝到本地机器 [root@localhost zabbix]# ansible-doc -s copy - name: Co ...

  2. (转)linux特殊文件名字删除不了怎么办

    1. 文件名含有特殊字符,直接使用 rm 可能删除不了,可以使用如下方法: 1) 使用 ls -i 查处该文件的 inode 号,假设为654321 2) 使用find命令删除 find ./ -in ...

  3. Gym - 101234J Zero Game (单调队列)

    题意:有一个长度为n的01序列,你可以移动k次,每次将一个数移到任意一个位置,求经过操作后区间连续最大的连续0的个数. “移动”操作看似情况很复杂,不好讨论,但其实无非就两种情况: 一.移动的是1:显 ...

  4. HDU - 6396 Swordsman (单调性+贪心)

    题意:有n个怪物和k种属性,当且仅当你的每种属性都大于等于怪物的属性才可以击杀它,且击杀怪物可以提升你一定的属性值.求可击杀怪物的最大数量以最终的属性值. 这不就是银行家算法里的安全性检验么? 本题的 ...

  5. nginx第六天

    nginx正向代理 反向代理 Nginx正向代理配置 Nginx正向代理使用场景并不多见. 需求场景1: 如果在机房中,只有一台机器可以联网,其他机器只有内网,内网的机器想用使用yum安装软件包,在能 ...

  6. 解决Iview 中 input 无法监听 enter 事件

    比如 我们想要在某个组件的根元素监听一个原生事件 可以使用 .native 修饰 v-on 例子: 这样子写 enter事件将无效 但是使用 .native 修饰 就可以监听到 enter事件啦.

  7. vue中前进刷新、后退缓存方案收集

    来源掘金: https://juejin.im/post/5b2ce07ce51d45588a7dbf76 来源博客园 https://www.cnblogs.com/wonyun/p/8763314 ...

  8. ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机【OK】

    ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机[OK]     使用下例中ssky-keygen和ssh-copy-id,仅需通过3个步骤的简单设置而无需输入密码就能 ...

  9. webbrowser 修改浏览器版本的方法

    http://blog.csdn.net/herogui/article/details/51982474

  10. 降维算法----PCA原理推导

    1.从几何的角度去理解PCA降维 以平面坐标系为例,点的坐标是怎么来的? 图1                                                             ...