Реагирующие компоненты концептуально разбивают свои данные на реквизиты, неизменяемые данные, переданные от их родителя, и состояние, изменяемые данные сохраняются локально. Единственное, что мне нравится в React, - это поддержка ограниченной проверки типов в виде propTypes. Почему нет подобной концепции состояния (например, stateTypes)?Почему у React.js нет stateTypes?
ответ
Использование так называемого stateTypes не принесет вам большой пользы.
Как официальный сайт Реагировать говорит о propTypes:
Как ваше приложение растет это полезно, чтобы гарантировать, что ваши компоненты используются правильно.
Важно помнить, что propTypes проверяет, если вы прошли корректные данные для текущего элемента в том месте, где вы оказываете этот компонент. Вы можете повторно использовать компонент столько раз, сколько пожелаете, поэтому легко может случиться, что вы забыли передать ему соответствующие свойства.
Следовательно, проверка данных, переданных из «другого источника», важнее и выгоднее, чем проверка данных, которые вы используете, когда пишете сам компонент. Если бы вы могли работать с информацией из состояния где-то еще, чего вы не можете, это было бы полезно использовать.
В любом случае, это всего лишь практичный инструмент для более легкой разработки, который необходимо отключить в производственной среде.
Заключение: может быть, этот вопрос немного основан на мнениях. Я считаю, что использование stateTypes не помогло бы, если бы вы заявили о своем состоянии в конструкторе (ES2015) или getInitialState и всего несколько строк ниже точно такой же информации, только в форме stateTypes.
- 1. React.js: Почему нет события компонентаDidRender?
- 2. Почему у клиентов нет?
- 3. Почему у меня нет xlrd?
- 4. Почему у boost нет make_scoped()?
- 5. Почему у GLKView нет контекста?
- 6. Почему у Rust нет союзов?
- 7. Почему у ActionScript нет «generics»?
- 8. Почему у Symfony2 нет моделей?
- 9. Почему у fixnum нет eigenclass?
- 10. Почему у меня нет свитка?
- 11. Почему у Scala нет указателя?
- 12. Почему у UDP нет флагов?
- 13. Почему у Ruby нет оператора! ==?
- 14. Почему у datetime.time нет astimezone?
- 15. Почему у MongoDB нет транзакций?
- 16. У меня нет gradle.build, почему?
- 17. Почему у SLComposeViewController нет делегата?
- 18. Почему у Википедии нет расширений?
- 19. Почему у меня нет изображений?
- 20. Почему у DecisionTreeClassifier нет prob_classify?
- 21. Почему у Него нет докшринга?
- 22. Почему у bool нет деструктора?
- 23. Почему у структур нет деструктора?
- 24. Почему у узла нет getElementByTagName()?
- 25. Почему у словаря нет AddRange?
- 26. Почему у Python нет знаковой функции?
- 27. Почему у Regex.Match нет функции GetEnumerator?
- 28. Почему у git нет команды git ignore?
- 29. Почему у google datastore нет OR?
- 30. Почему у экземпляра класса нет открытого конструктора?
Было бы неплохо быть предупрежденным, когда вы устанавливаете состояние с неправильной формой 'shape'. – seanmcl