Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >React基础语法05-改变this指向的3种方法

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

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

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

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

定义的数据

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

方法

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

模板

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

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

定义数据,构造函数

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

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

方法:

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

模板

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

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

定义数据

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

方法:

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

模板

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

参考代码:Home.js

代码语言:javascript
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
6700
React基础语法07-点击按钮,获取input框的值(通过事件对象获取)
在this.state里面定义一个空的username:'',并且把把表单输入的值赋值给username。
王小婷
2019/11/10
6.3K0
React组件基础
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5zo7zriO-1668351209724)(images/组件.png)]
用户10169043
2022/11/18
3.6K0
React组件基础
react的事件处理为什么要bind this 改变this的指向?
这句话大概意思就是,你要小心jax回调函数里面的this,class方法默认是不会绑定它的
Tz一号
2020/09/10
1.5K0
React组件绑定this的四种方式
用react进行开发组件时,我们需要关注一下组件内部方法this的指向,react定义组件的方式有两种,一种为函数组件,一种为类组件,类组件内部可以定义一些方法,这些方法的this需要绑定到组件实例上,小编这里总结了一下,一共有四种方案:
挥刀北上
2019/07/19
5660
React基础语法
JSX语法中,可以在大括号内放置任何有效的JavaScript表达式。例如2+2、user.firstName或formatName(user)等均是有效的JavaScript表达式。
前端_AWhile
2020/05/18
5.4K0
浅谈react 中的 this 指向
https://react.docschina.org/docs/react-without-jsx.html
念念不忘
2019/03/29
2.2K0
浅谈react 中的 this 指向
快速上手三大基础 React Hooks
20190313162354.png ? 快速上手三大基础 React Hooks Hooks 出了有段时间了,不知盆友们有在项目中开始使用了吗❓如果还没了解的童鞋,可以瞧瞧这篇文章,对比看下三大基础
JS菌
2019/04/10
1.7K0
React 深入系列5:事件处理
文:徐超,《React进阶之路》作者 授权发布,转载请注明作者及出处 ---- React 深入系列5:事件处理 React 深入系列,深入讲解了React中的重点概念、特性和模式等,旨在帮助大家加深对React的理解,以及在项目中更加灵活地使用React。 Web应用中,事件处理是重要的一环,事件处理将用户的操作行为转换为相应的逻辑执行或界面更新。在React中,处理事件响应的方式有多种,本文将详细介绍每一种处理方式的用法、使用场景和优缺点。 使用匿名函数 先上代码: //代码1 class
iKcamp
2018/05/28
7540
React-day4
componentWillMount: 组件将要被挂载,此时还没有开始渲染虚拟DOM render:第一次开始渲染真正的虚拟DOM,当render执行完,内存中就有了完整的虚拟DOM了 componentDidMount: 组件完成了挂载,此时,组件已经显示到了页面上,当这个方法执行完,组件就进入都了 运行中 的状态
海仔
2021/05/06
1K0
8种方法助你写出高效 React 组件
本期文章主要分享了在写 React 组件时如何一步一步渐进式地写出高效的 React 组件。
前端修罗场
2022/07/29
5.6K0
8种方法助你写出高效 React 组件
美团前端经典react面试题整理_2023-02-28
component.forceUpdate() 一个不常用的生命周期方法, 它的作用就是强制刷新
用户10376779
2023/02/28
1.9K0
react中类组件传值,函数组件传值:父子组件传值、非父子组件传值[通俗易懂]
函数组件中我们一般情况下使用useEffect实现数据的请求 // useEffect Hook 看做 componentDidMount,componentDidUpdate 和 componentWillUnmount (加载,更新,卸载)这三个函数的组合。 语法格式: useEffect(()=>{ },[])
全栈程序员站长
2022/08/30
8.3K0
React中组件间通信的方式
props适用于父子组件的通信,props以单向数据流的形式可以很好的完成父子组件的通信,所谓单向数据流,就是数据只能通过props由父组件流向子组件,而子组件并不能通过修改props传过来的数据修改父组件的相应状态,所有的props都使得其父子props之间形成了一个单向下行绑定,父级props的更新会向下流动到子组件中,但是反过来则不行,这样会防止从子组件意外改变父级组件的状态,导致难以理解数据的流向而提高了项目维护难度。实际上如果传入一个基本数据类型给子组件,在子组件中修改这个值的话React中会抛出异常,如果对于子组件传入一个引用类型的对象的话,在子组件中修改是不会出现任何提示的,但这两种情况都属于改变了父子组件的单向数据流,是不符合可维护的设计方式的。 我们通常会有需要更改父组件值的需求,对此我们可以在父组件自定义一个处理接受变化状态的逻辑,然后在子组件中如若相关的状态改变时,就触发父组件的逻辑处理事件,在React中props是能够接受任意的入参,此时我们通过props传递一个函数在子组件触发并且传递值到父组件的实例去修改父组件的state。
WindRunnerMax
2021/02/04
3K0
React 基础实例教程
首先,需要核心库react.js与React的DOM操作组件react-dom.js
书童小二
2018/09/03
4.7K0
React  基础实例教程
React基础(5)-React中组件的数据-props
开发一个React应用,更多的是在编写组件,而React组件最小的单位就是React元素,编写组件的最大的好处,就是实现代码的复用
itclanCoder
2019/09/28
8.1K0
React基础(5)-React中组件的数据-props
一天梳理完react面试高频知识点
为了解决跨浏览器兼容性问题, React中的事件处理程序将传递 SyntheticEvent的实例,它是跨浏览器事件的包装器。这些 SyntheticEvent与你习惯的原生事件具有相同的接口,它们在所有浏览器中都兼容。
beifeng1996
2022/11/10
1.7K0
React入门看这篇就够了
React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。
random_wang
2019/09/11
5K0
react简单入门教程(Todolist实现 )
注意:点击对象获得state内容,可以在指定函数后加上.bind(this)进行绑定,此时可以去表示state
十月梦想
2020/01/20
6420
react基础--1
2.发现组件是函数定义的,随后调用该函数,将返回的虚拟DOM转换为真实DOM,随后展示在页面中
切图仔
2022/09/08
1K0
相关推荐
React基础语法06-事件对象的应用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档