04 React事件 方法、React定义方法的几种方式 获取数据 改变数据 执行方法传值

一、React 事件

二、React 定义方法

import React, { Component } from "react";
import "../assets/css/index.css";


class Home extends Component {
  //固定写法
  constructor(props) {
    super(props);

    this.state = {
      msg:"我是一个home组件"
    };
  }

  run(){
    alert("我是一个run方法")
  }


  render() {
    return (
      <div>
        <h2>{this.state.msg}</h2>

        <button onClick={this.run}>执行方法--不用加(),()是执行方法</button>

      </div>
    );
  }
}

export default Home;

三、React 方法改变this指向的三种方式—获取数据

3.1第一种方式
在这里插入图片描述
在这里插入图片描述

import React, { Component } from "react";
import "../assets/css/index.css";


class Home extends Component {
  //固定写法
  constructor(props) {
    super(props);

    this.state = {
      msg:"我是一个home组件"
    };
  }


  getDate(){
    alert(this.state.msg);
  }

  render() {
    return (
      <div>
        <h2>{this.state.msg}</h2>
        
        <br/>
        <br/>

        <button onClick={this.getDate.bind(this)}>获取数据--第一种改变this指向的方法</button>

      </div>
    );
  }
}

export default Home;

3.2第二种方式
在这里插入图片描述

在这里插入图片描述

import React, { Component } from "react";
import "../assets/css/index.css";


class Home extends Component {
  //固定写法
  constructor(props) {
    super(props);

    this.state = {
      message:"我是一个message"
    };

    this.getMessage = this.getMessage.bind(this);
  }


  getMessage(){
    alert(this.state.message);
  }

  render() {
    return (
      <div>
      
        <button onClick={this.getMessage}>
           获取数据--第二种改变this指向的方法</button>
           
      </div>
    );
  }
}

export default Home;

3.2第三种方式
在这里插入图片描述

在这里插入图片描述

import React, { Component } from "react";
import "../assets/css/index.css";


class Home extends Component {
  //固定写法
  constructor(props) {
    super(props);

    this.state = {
      username:"danke"
    };

  }



  // 箭头函数的this指的就是当前的上下文
  getName = ()=>{
    alert(this.state.username);
  }

  render() {
    return (
      <div>

        <button onClick={this.getName}>
           获取数据--3种改变this指向的方法</button>

      </div>
    );
  }
}

export default Home;

四、setState改变数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import React, { Component } from "react";
import "../assets/css/index.css";


class Home extends Component {
  //固定写法
  constructor(props) {
    super(props);

    this.state = {
      msg:"我是一个home组件",
    };


  }



  setDate = ()=> {
    //改变state的值
    this.setState({
      msg:"我是一个home组件  这是改变后的值"
    });
  }

  render() {
    return (
      <div>
		<h2>{this.state.msg}</h2>
		
        <button onClick={this.setDate}>
          改变state里面的值  
        </button>


      </div>
    );
  }
}

export default Home;

五、React 执行方法传值

在这里插入图片描述

报错

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

import React, { Component } from "react";
import "../assets/css/index.css";


class Home extends Component {
  //固定写法
  constructor(props) {
    super(props);

    this.state = {
      username:"danke"
    };


  }


  setName = (str)=> {
    this.setState({
      username:str
    });
  }

  render() {
    return (
      <div>

        <h2>{this.state.username}</h2>

        <button onClick={this.setName.bind(this,'张三')}>
          执行方法传值 
        </button>

      </div>
    );
  }
}

export default Home;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值