2017-03-21 3 views
1

私は基本的に、彼らはデコレータでそれを返す前に、コンポーネントにpropTypesを追加 PropTypes on Higher Order Components高次コンポーネントのPropTypesは本番環境で削除されますか?

ために、この例を見つけました。以下のコードのコピーを参照してください。

私が知っているのは、反応ストリップのPropTypesのビルドビルドですが、以下のような内部機能からそれを取り除くのでしょうか?

function EnhanceButton(Component) { 
    class _EnhancedButton extends React.Component { 
     render() { 
      return (
       <Component { ...this.props }>{this.props.children}</Component> 
      ); 
     } 
    } 
    _EnhancedButton.propTypes = Component.propTypes; 

    return _EnhancedButton; 
} 

答えて

0

ReactはコードのpropTypesを削除しません。プロダクションではpropTypesの検証をスキップするだけです。

propTypes関連コードを本番環境で削除する場合は、babel-plugin-transform-react-remove-prop-typesを使用できます。

さらに、babel-react-optimizeを使用してさらに最適化を行うことができます。

+0

ああ、説明をいただきありがとうございます。 –

0

あなたは__DEV__が真であるとき、小道具のタイプにのみチェックされていること、コードhereで見ることができます。プロダクションビルドのコードからpropTypesが削除されない場合は、パフォーマンスを向上させるためにチェックはスキップされます。
また、あなたのケースではスキップされます。

関連する問題