2016-09-20 11 views
15

完全に読む前にこの質問を閉じないでください。これは主に自分の意見で答えることができる質問のように聞こえるかもしれません。しかし、なぜPropTypesの2つの実装がありますか?どちらが優先されますか?static propType Vs React.PropTypes

staticキーワードを使用してpropTypesを定義する方法もあります。

class App extends React.Component { 
    static propTypes = { 
    ... 
    } 
} 

他の方法は、このような何かを行うことです:私たちは、生産のためのアプリケーションを構築する時にstaticキーワードを使用している場合

class App extends React.Component { 
    ... 
} 

App.propTypes = { 
    ... 
} 

我々はpropTypesを削除できますか?パフォーマンスを向上させるためには、propTypesを削除することをお勧めします。

+0

あなたがどこの環境にいるか静的な方法を好むコードレビューのコメントがありますが、これとApp.propTypes = {}の方法のメリットについてはっきりしていません – d3ming

答えて

2

は、私がその最初のバージョン

class App extends React.Component { 
    static propTypes = { 
    ... 
} 
} 

ではないので、有効なES6を考えます。クラス宣言内に静的変数を割り当てることはできません。そのバージョンを使用する場合は、トランスペラレータにES7を含めるように設定する必要があります。少なくとも私が仕事で持っている設定と私が今使っている設定との間には、私の推測があります。

14

これは、これがES6バージョン個人

class App extends React.Component { 
    ... 
} 

App.propTypes = { 
    ... 
} 

あるが、それは構成要素の上部にpropTypesを表示するために、より理にかなっているので、私はES7バージョンを好むES7バージョン

class App extends React.Component { 
    static propTypes = { 
    ... 
    } 
} 

ありますコンポーネントをレンダリングするために必要なものの概要を提供します(関数に必要なパラメータと同様)。

使用しているバージョンに関係なく、propTypesを削除して生産するには、https://github.com/oliviertassinari/babel-plugin-transform-react-remove-prop-typesを使用する必要があります。また、https://github.com/thejameskyle/babel-react-optimizeを使用することもできます。これには、上記の変換に加えていくつかの利点があります。アプリをさらに最適化したいと思うからです(:

+0

@Mihirはあなたの質問に答えますか?受け入れ? –