2015-07-04 3 views
6

Реагирующие компоненты концептуально разбивают свои данные на реквизиты, неизменяемые данные, переданные от их родителя, и состояние, изменяемые данные сохраняются локально. Единственное, что мне нравится в React, - это поддержка ограниченной проверки типов в виде propTypes. Почему нет подобной концепции состояния (например, stateTypes)?Почему у React.js нет stateTypes?

ответ

6

Использование так называемого stateTypes не принесет вам большой пользы.

Как официальный сайт Реагировать говорит о propTypes:

Как ваше приложение растет это полезно, чтобы гарантировать, что ваши компоненты используются правильно.

Важно помнить, что propTypes проверяет, если вы прошли корректные данные для текущего элемента в том месте, где вы оказываете этот компонент. Вы можете повторно использовать компонент столько раз, сколько пожелаете, поэтому легко может случиться, что вы забыли передать ему соответствующие свойства.

Следовательно, проверка данных, переданных из «другого источника», важнее и выгоднее, чем проверка данных, которые вы используете, когда пишете сам компонент. Если бы вы могли работать с информацией из состояния где-то еще, чего вы не можете, это было бы полезно использовать.

В любом случае, это всего лишь практичный инструмент для более легкой разработки, который необходимо отключить в производственной среде.

Заключение: может быть, этот вопрос немного основан на мнениях. Я считаю, что использование stateTypes не помогло бы, если бы вы заявили о своем состоянии в конструкторе (ES2015) или getInitialState и всего несколько строк ниже точно такой же информации, только в форме stateTypes.

+4

Было бы неплохо быть предупрежденным, когда вы устанавливаете состояние с неправильной формой 'shape'. – seanmcl

Смежные вопросы