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

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

使用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;
相关文章
|
4月前
|
XML JavaScript 前端开发
React Jsx语法入门
【8月更文挑战第13天】React Jsx语法入门
47 4
|
1月前
|
JavaScript 前端开发 容器
React零基础入门02--JSX语法基础
React零基础入门02--JSX语法基础
React零基础入门02--JSX语法基础
|
2月前
|
前端开发
|
2月前
|
Android开发
jmessage-react-plugin的正确引入方法
jmessage-react-plugin的正确引入方法
15 1
|
3月前
|
前端开发 JavaScript 开发者
请详细介绍React挂载阶段的方法。
请详细介绍React挂载阶段的方法。
63 9
|
4月前
|
前端开发 JavaScript
React 组件生命周期方法详解
【8月更文挑战第30天】
57 5
|
3月前
封装react-antd-table组件参数以及方法如rowSelection、pageNum、pageSize、分页方法等等
文章介绍了如何封装React-Antd的Table组件,包括参数和方法,如行选择(rowSelection)、页码(pageNum)、页面大小(pageSize)、分页方法等,以简化在不同表格组件中的重复代码。
77 0
|
4月前
|
前端开发 JavaScript 开发者
React 的 ES6 语法与 ES5 相比有何不同?
【8月更文挑战第30天】
67 1
|
4月前
|
前端开发 JavaScript API
学习 React 的方法
【8月更文挑战第26天】学习 React 的方法
41 1
|
4月前
|
前端开发 JavaScript 开发者
React生命周期方法完全指南:深入理解并高效应用每个阶段的钩子——从初始化到卸载的全方位解析
【8月更文挑战第31天】本文详细介绍了React组件生命周期方法,包括初始化、挂载、更新和卸载四个阶段的关键钩子。通过探讨每个阶段的方法,如`componentDidMount`和`componentWillUnmount`,帮助开发者在正确时机执行所需操作,提升应用性能。文章还提供了最佳实践,指导如何避免常见错误并充分利用最新钩子。
112 0