【问题标题】:React.js - using property initializers for all component methodsReact.js - 为所有组件方法使用属性初始化器
【发布时间】:2016-03-03 00:35:33
【问题描述】:

我正在开发一个 React Native 项目,并且我正在为 React 组件使用 ES6 类。

由于通过 ES6 类定义的 React 组件没有自动绑定功能,因此 React 团队 recommends 将 ES7 属性初始化器与箭头函数结合起来以创建相同的效果。

为了保持一致并防止与 this-binding 混淆,我将 ES7 属性初始化器用于所有组件方法:

class Foo extends React.Component {
  constructor(props) {
    super(props);
    ...
  }

  componentDidMount = () => {
      ...
  };

  bar = () => {
    ...
  };

  render = () => {
    ...
  };
}

我想知道 - 是否有任何严重的性能警告需要注意?特别是,我想知道 render() 方法。

总的来说,这看起来是个好方法吗?

【问题讨论】:

    标签: javascript reactjs react-native babeljs


    【解决方案1】:

    最大的警告是,这个特定的功能不是标准的,也不是公认的。 (不会是 ES7,因为没有 ES7。也许是 ES2017,但还不清楚。)

    分配几个新的长寿命对象并将它们存储在类中也是有成本的。

    我不会推荐这个。仅用于回调。

    【讨论】:

    • 感谢您的反馈!
    • 快速跟进——我的团队决定使用 bind() 方法进行回调,我们目前暂不使用带有箭头函数的属性初始化器。您的回复帮助我们做出了这个决定。
    猜你喜欢
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多