前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React基础语法05-改变this指向的3种方法

React基础语法05-改变this指向的3种方法

作者头像
王小婷
发布2019-11-10 23:46:30
5040
发布2019-11-10 23:46:30
举报
文章被收录于专栏:编程微刊编程微刊编程微刊

使用this指向当前组件的三种方法:分别是在模板里,在构造函数里,在构造函数里改变,推荐第三种,箭头函数。

1:在模板里面:改变this指向的方法

定义的数据

this.state = {
msg:'我是王小婷定义的数据一号'
}

方法

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

模板

<button onClick={this.getData.bind(this)}>第一种获取数据的方法</button>

2:在构造函数里面: 指定

定义数据,构造函数

constructor() {
        super();
        //react定义数据
        this.state = {
            msg:'我是王小婷定义的数据OO'
        }

        //第二种改变this指向的方法
        this.getMsg=this.getMsg.bind(this);
    }

方法:

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

模板

<button onClick={this.getMsg}>第二种获取数据的方法</button>

3:在方法里面:使用箭头函数指向(推荐)

定义数据

//react定义数据
this.state = {
msg:'我是王小婷定义的数据OO'
}

方法:

getName=()=>{
alert(this.state.msg);
}

模板

<button onClick={this.getName}>第三种获取数据的方法</button>

参考代码:Home.js

import React, { Component } from 'react';
import photo from '../asset/images/photo.jpg';
import '../asset/css/index.css'
class Home extends Component {
    constructor() {
        super();
        //react定义数据
        this.state = {
            msg:'我是王小婷定义的数据OO'
        }

        //第二种改变this指向的方法--在构造函数里面: 指定
        this.getMsg=this.getMsg.bind(this);
    }

    run(){
        alert('我是王小婷定义的方法')
    }

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

    getMsg(){
        alert(this.state.msg);
    }
     //第三种改变this指向的方法--在方法里面:使用箭头函数指向
    getName=()=>{
        alert(this.state.msg);
    }
    render() {
        
        return (
            <div>
                <button onClick={this.run}>点击按钮</button>
                
                {/* 第一种改变this指向的方法--在模板里面:改变this指向 */}

                <button onClick={this.getData.bind(this)}>第一种获取数据的方法</button>
                <button onClick={this.getMsg}>第二种获取数据的方法</button>
                <button onClick={this.getName}>第三种获取数据的方法</button>
            </div>
        )
    }
}
export default Home;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1:在模板里面:改变this指向的方法
  • 2:在构造函数里面: 指定
  • 3:在方法里面:使用箭头函数指向(推荐)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档