React学习

写在开头:下面部分内容是转自其他大佬的解释,本文只是转摘+整理,供自己学习记录。

1、关于react学习中的this

首先解释js中的this调用时可能出现bug的情况——原理:JS中的this是由函数调用的地方所决定的。例1:

例子1

上面的例子中,第一个this指的是cat(即当前函数所在的对象);而输出结果则是undefined(ES6的语法下默认自动使用严格模式,即‘use strict;’;如果非严格模式输出结果为window)

js在对象外时,函数被赋给tom时,当前对象不为cat,this则指向了undefine。

解决this指向的问题的方法:

如果没有this,则不需要用下面两种方法。react中不用bind(this)是为了提高效率。

1、箭头函数

class A entend Component {

    onChange = (value) => {

        console.log(this); ........

    }

    render(

        <Button onChange = "this.onChange" />

    )

}

2、bind(this)

class A extend Component{

    onChange(value) {console.log()........}  // onChange函数

    render中 调用时this.onChange.bind(this, value);

}

3、在constructor内提前将绑定了bind的函数赋给新变量   => 其实和方法一类似

contructor (prop) {

    .......(其他内容)   this.onChange= this.onChange.bind(this);

}

onChange = (value) => {

        console.log(this); ........

    }

render(

    <Button onChange = "this.onChange" />

)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 官网地址https://facebook.github.io/react/docs/hello-world.htm...
    pixels阅读 718评论 0 6
  • react脚手架大集合 react4.0 官网redux入门教程react-native中文官网react官方文档...
    pauljun阅读 503评论 0 7
  • 单向数据流驱动,父节点传递到子节点 react最重要是组件 ReactJS官方地址:https://faceboo...
    紫由袅阅读 422评论 0 0
  • 3. JSX JSX是对JavaScript语言的一个扩展语法, 用于生产React“元素”,建议在描述UI的时候...
    pixels阅读 2,919评论 0 24
  • 1.React环境安装 这里会直接使用 React.js 官网所推荐使用的工具 create-react-app ...
    MJ小宇宙爆炸阅读 587评论 0 2