Насколько я знаю, единственный способ отключить React PropType валидация - это угадать React с process.env.NODE_ENV
, определенным как 'production'
.
Однако я бы хотел использовать режим разработки без проверки PropType во время выполнения по следующим причинам:
- Они значительно замедляют мое приложение. Проверка PropType является верхним нарушителем в результатах профилирования, потому что:
- У меня довольно глубокая иерархия компонентов с проверкой PropType на нескольких уровнях (да, у меня есть надлежащий mustComponentUpdate и т.д.).
- Я использую Redux, что означает, что все обновления начинаются с вершины иерархии или рядом с ней.
- У меня есть взаимодействия с мышью, которые стремятся к 30 обновлениям в секунду.
- Я все еще хочу видеть все другие предупреждения и ошибки React, которые также будут отключены в режиме производства.
- Flowtype может, по-видимому, статически проверять PropTypes во многих случаях.
Если ничего другого, я не мог бы создать трансформатор для babel-plugin-react-transform
, который удаляет все компоненты propTypes
(или, возможно, только те из компонентов, которые я аннотировал определенным образом), но мне интересно, есть ли более простой способ сделать это, потому что React может легко предоставить флаг времени компиляции, чтобы отключить проверку PropType.
UPDATE: этот плагин babel уже существует (https://www.npmjs.com/package/babel-plugin-react-remove-prop-types)