问题:在react项目中的JSX中,为什么onChange={this.func.bind(this)}比non-bindfunc=()=>{}写效率高吗?免责声明:由于本人水平有限,如有考虑不周,或有错误的地方,还望大家严格指出,万分感谢。这是我的第一篇文章,如果你有什么不明白的潜规则,请告诉我。小哥明天来分享,分享完了,继续完善。之前无意中看到这个问题。据说是阿里p5-p6级别的问题。我们先来看看这个问题。表面上是考察对react的理解深度。其实涉及到很多考点:bind,箭头函数,react中绑定this的各种方法,优缺点,适用场景,类继承,原型链等等,所以很全面。我们今天的题目就是根据这个题目总结一下相关的知识点。这里我重点分析题目中的第二种绑定方案。五种this绑定方案的区别方案一:React.createClass这是老版本React中声明组件的方式。那个版本没有引入class的概念,所以就这样创建了一个组件类(constructor)ES6class相对于createClass去掉了两点:一是mixin,二是this的自动绑定。前者可以用HOC代替,后者则完全没有。原因是FB认为这样可以避免和JS语法混淆,所以去掉了。使用这个方法,我们不用担心这个,它会自动绑定到组件实例上,但是这个API已经被弃用了,所以我们只需要了解一下就可以了。constApp=React.createClass({handleClick(){console.log(this)},render(){return
