Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >React基础语法05-改变this指向的3种方法

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

作者头像
王小婷
发布于 2019-11-10 15:46:30
发布于 2019-11-10 15:46:30
53400
代码可运行
举报
文章被收录于专栏:编程微刊编程微刊
运行总次数:0
代码可运行

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

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

定义的数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
this.state = {
msg:'我是王小婷定义的数据一号'
}

方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
getData(){
alert(this.state.msg);
}

模板

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button onClick={this.getData.bind(this)}>第一种获取数据的方法</button>

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

定义数据,构造函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
constructor() {
        super();
        //react定义数据
        this.state = {
            msg:'我是王小婷定义的数据OO'
        }

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

方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
getMsg(){
alert(this.state.msg);
}

模板

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button onClick={this.getMsg}>第二种获取数据的方法</button>

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

定义数据

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//react定义数据
this.state = {
msg:'我是王小婷定义的数据OO'
}

方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
getName=()=>{
alert(this.state.msg);
}

模板

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button onClick={this.getName}>第三种获取数据的方法</button>

参考代码:Home.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
React基础语法06-事件对象的应用
老规矩,先看完官方文档,记录学习笔记: 教程:https://www.runoob.com/react/react-tutorial.html 文档:http://caibaojian.com/react/
王小婷
2019/11/10
5840
React组件绑定this的四种方式
用react进行开发组件时,我们需要关注一下组件内部方法this的指向,react定义组件的方式有两种,一种为函数组件,一种为类组件,类组件内部可以定义一些方法,这些方法的this需要绑定到组件实例上,小编这里总结了一下,一共有四种方案:
挥刀北上
2019/07/19
5110
浅谈react 中的 this 指向
https://react.docschina.org/docs/react-without-jsx.html
念念不忘
2019/03/29
2.1K0
浅谈react 中的 this 指向
React组件基础
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5zo7zriO-1668351209724)(images/组件.png)]
用户10169043
2022/11/18
3.1K0
React组件基础
react简单入门教程(Todolist实现 )
注意:点击对象获得state内容,可以在指定函数后加上.bind(this)进行绑定,此时可以去表示state
十月梦想
2020/01/20
5910
React基础语法
JSX语法中,可以在大括号内放置任何有效的JavaScript表达式。例如2+2、user.firstName或formatName(user)等均是有效的JavaScript表达式。
前端_AWhile
2020/05/18
5K0
美团前端经典react面试题整理_2023-02-28
component.forceUpdate() 一个不常用的生命周期方法, 它的作用就是强制刷新
用户10376779
2023/02/28
1.6K0
React-day4
componentWillMount: 组件将要被挂载,此时还没有开始渲染虚拟DOM render:第一次开始渲染真正的虚拟DOM,当render执行完,内存中就有了完整的虚拟DOM了 componentDidMount: 组件完成了挂载,此时,组件已经显示到了页面上,当这个方法执行完,组件就进入都了 运行中 的状态
海仔
2021/05/06
8970
快速上手三大基础 React Hooks
20190313162354.png ? 快速上手三大基础 React Hooks Hooks 出了有段时间了,不知盆友们有在项目中开始使用了吗❓如果还没了解的童鞋,可以瞧瞧这篇文章,对比看下三大基础
JS菌
2019/04/10
1.5K0
React 深入系列5:事件处理
文:徐超,《React进阶之路》作者 授权发布,转载请注明作者及出处 ---- React 深入系列5:事件处理 React 深入系列,深入讲解了React中的重点概念、特性和模式等,旨在帮助大家加深对React的理解,以及在项目中更加灵活地使用React。 Web应用中,事件处理是重要的一环,事件处理将用户的操作行为转换为相应的逻辑执行或界面更新。在React中,处理事件响应的方式有多种,本文将详细介绍每一种处理方式的用法、使用场景和优缺点。 使用匿名函数 先上代码: //代码1 class
iKcamp
2018/05/28
6780
8种方法助你写出高效 React 组件
本期文章主要分享了在写 React 组件时如何一步一步渐进式地写出高效的 React 组件。
前端修罗场
2022/07/29
5.3K0
8种方法助你写出高效 React 组件
社招前端二面react面试题集锦
Ajax请求应该写在组件创建期的第五个阶段,即 componentDidMount生命周期方法中。原因如下。
beifeng1996
2022/12/14
2.1K0
React基础(5)-React中组件的数据-props
开发一个React应用,更多的是在编写组件,而React组件最小的单位就是React元素,编写组件的最大的好处,就是实现代码的复用
itclanCoder
2019/09/28
7K0
React基础(5)-React中组件的数据-props
react的事件处理为什么要bind this 改变this的指向?
这句话大概意思就是,你要小心jax回调函数里面的this,class方法默认是不会绑定它的
Tz一号
2020/09/10
1.4K0
新手学习 react 迷惑的点(完整版)
网上各种言论说 React 上手比 Vue 难,可能难就难不能深刻理解 JSX,或者对 ES6 的一些特性理解得不够深刻,导致觉得有些点难以理解,然后说 React 比较难上手,还反人类啥的,所以我打算写两篇文章来讲新手学习 React 的时候容易迷惑的点写出来,如果你还以其他的对于学习 React 很迷惑的点,可以在留言区里给我留言。
桃翁
2019/09/09
1.2K0
新手学习 react 迷惑的点(完整版)
react基础--1
2.发现组件是函数定义的,随后调用该函数,将返回的虚拟DOM转换为真实DOM,随后展示在页面中
切图仔
2022/09/08
8130
一天梳理完react面试高频知识点
为了解决跨浏览器兼容性问题, React中的事件处理程序将传递 SyntheticEvent的实例,它是跨浏览器事件的包装器。这些 SyntheticEvent与你习惯的原生事件具有相同的接口,它们在所有浏览器中都兼容。
beifeng1996
2022/11/10
1.4K0
React基础语法07-点击按钮,获取input框的值(通过事件对象获取)
在this.state里面定义一个空的username:'',并且把把表单输入的值赋值给username。
王小婷
2019/11/10
5.6K0
React 基础实例教程
首先,需要核心库react.js与React的DOM操作组件react-dom.js
书童小二
2018/09/03
4.4K0
React  基础实例教程
React两大组件,三大核心属性,事件处理和函数柯里化
3.我们编码时基本只需要操作react的虚拟DOM相关数据, react会转换为真实DOM变化而更新界。
大忽悠爱学习
2021/11/15
3.2K0
相关推荐
React基础语法06-事件对象的应用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验