static propTypes Vs React.PropTypes

Mih*_*hir 39 javascript reactjs

在完全阅读之前请不要关闭此问题.这听起来像是一个可以主要由一个人的意见回答的问题.但为什么PropTypes有两种实现方式?哪一个更受欢迎?

一种方法是使用static关键字并定义我们的propTypes.

class App extends React.Component {
  static propTypes = {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

另一种方法是做这样的事情:

class App extends React.Component {
  ...
}

App.propTypes = {
  ...
}
Run Code Online (Sandbox Code Playgroud)

propTypes如果我们static在构建应用程序进行生产时使用关键字,我们是否可以删除?因为propTypes鼓励删除以提高性能.

Yan*_*Tay 50

这是一个es7版本

class App extends React.Component {
  static propTypes = {
    ...
  }
}
Run Code Online (Sandbox Code Playgroud)

而这是es6版本

class App extends React.Component {
  ...
}

App.propTypes = {
  ...
}
Run Code Online (Sandbox Code Playgroud)

我个人更喜欢es7版本,因为查看propTypes组件顶部更有意义,概述渲染组件所需的内容(类似于函数所需的参数).

无论您使用哪个版本,如果要剥离propTypes生产,都需要使用https://github.com/oliviertassinari/babel-plugin-transform-react-remove-prop-types.或者,您可以使用https://github.com/thejameskyle/babel-react-optimize,其中包括上述转换以及其他一些好东西,因为我猜您还希望进一步优化您的应用(:

  • 是的,你会需要它。es7 版本只是语法糖 (2认同)