【问题标题】:Property initializers in React classes?React 类中的属性初始化器?
【发布时间】:2016-06-17 12:37:16
【问题描述】:

我已经开始看到这种模式弹出:

class MyComponent extends React.Component {
  static propTypes = {
    // ...
  };

  //...
}

一开始我以为这是无效的,直到我查了一下才发现它是 ES7。这是一种安全的(即面向未来的)语法吗?我问是因为我意识到并非 ES6 和 ES7 中的所有语法都被批准,许多只是简单地提出来的。我确实比我一直使用的更喜欢这个:

class MyComponent extends React.Component {
  // ...
}

MyComponent.propTypes = { .. }

【问题讨论】:

  • 不安全,ES7 中没有什么是一成不变的。 ES6 是当前的标准,所以 ES6 中的所有语法都是安全的。
  • “ES6 中的所有语法都是安全的”——除了在对象中使用 rests。 return {...state, otherStuff}
  • 对象传播不是 ES6。
  • 它不是 ES7,也就是 ES2016。 ES7 只有两个添加:Array#includes 和指数运算符 (**)。 2ality.com/2016/01/ecmascript-2016.html
  • 是的。 “ES7”这个词有很多误用。

标签: javascript reactjs ecmascript-next


【解决方案1】:

是的,它是安全且面向未来的。这些功能是 ES6 的一部分,而不是 ES7,它已经是一个批准的标准。

浏览器在实现这些功能方面已经走了很长一段路,如 this compatibility table 所示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2017-09-29
    • 1970-01-01
    • 2020-03-05
    • 2018-09-11
    • 2015-11-29
    • 2016-01-12
    相关资源
    最近更新 更多