javascript – 使用React时最好使用胖箭头函数还是在构造函数中绑定函数?

前端之家收集整理的这篇文章主要介绍了javascript – 使用React时最好使用胖箭头函数还是在构造函数中绑定函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在创建React类时,哪个更好?
export default class Foo extends React.Component {
  constructor (props) {
    super(props)
    this.doSomething = this.doSomething.bind(this)
  }

  doSomething () { ... }
}

要么

export default class Foo extends React.Component {
  doSomething = () => { ... }
}

我的同事认为后者会导致内存问题,因为babel会将代码转换为在闭包内捕获它,并且该引用将导致实例不被GC清除.

有什么想法吗?

解决方法

公共类字段语法(所以doSomething =()=> {…})是 not yet part of ECMAScript,但它表现良好,我相信它会到达那里.

所以使用这种语法迫使你进行转换,但它带来了好处:

>用于表达此绑定的清晰,简洁的语法
>浏览器支持功能的未来证明
>不关心实施

对我来说,这是一个明显的胜利.在大多数情况下,你甚至不需要构造函数(props),从而节省了你的样板超级调用.

如果Babel实现会导致内存泄漏,您可以确定这些内容会被快速找到并修复.您不得不编写更多代码来自行创建泄漏.

猜你在找的JavaScript相关文章