生产中是否删除了更高阶组件上的PropTypes?

时间:2017-03-21 11:22:49

标签: reactjs higher-order-components

我找到了这个例子 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;
}

2 个答案:

答案 0 :(得分:1)

React不会删除代码的propTypes,只是在生产中跳过propTypes验证。

如果您要删除生产中的propTypes相关代码,可以使用babel-plugin-transform-react-remove-prop-types

此外,您可以使用babel-react-optimize进行进一步优化。

答案 1 :(得分:0)

您可以在代码here中看到,仅当__DEV__为真时才会检查道具类型。在生产版本中,propTypes不会从您的代码中删除,只是跳过检查以获得更好的性能 在你的情况下也会跳过它。