2016-09-24 3 views
2

Я все еще изучаю Реагирование и не могу понять важность PropTypes. Может ли кто-нибудь дать свои мысли, каковы преимущества определения вашего PropTypes? Я прочитал дискуссию об этом в документации React, но я не могу понять преимущества сохранения PropTypes в стороне от просмотра ошибок/предупреждений консоли, когда типы не совпадают. Это говорит о documentationКакова важность PropTypes в реале?

При проектировании интерфейсов, ломаются общие элементы дизайна (кнопки, поля форм, компоненты макета и т.д.) в многоразовых компонентов с четко определенными интерфейсами. Таким образом, в следующий раз, когда вам нужно создать некоторый пользовательский интерфейс, вы можете написать гораздо меньше кода. Это означает, что быстрее время разработки, меньше ошибок и меньше байтов по кабелю.

Так кроме тех преимуществ, у меня есть несколько других вопросов:

  1. При определении PropTypes вы определенно писать больше коды, который противоречит этому утверждению жирного шрифта.
  2. Другой вопрос: PropTypes применим только к дочерним компонентам, поскольку материнские компоненты обычно не имеют реквизитов?
  3. Если да, то как мы можем проверить типы состояний родительских компонентов, есть ли StateTypes, так сказать?
+0

* «как мы проверяем тип состояний исходных компонентов» * Это не имеет смысла для проверки состояния, так как только компонент сами по себе может изменить свое состояние , –

ответ

5

Реагирует вокруг концепции компонентов. Целая веб-страница должна быть разбита на компоненты, и каждый компонент будет взаимодействовать друг с другом через props.

Таким образом, все эти преимущества использования PropTypes

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

PropTypes не является обязательным.

[EDIT] Ответы на вопросы в порядке

  1. Да, вы будете писать дополнительный код. Но если вам нужно подтвердить свой props, что является дополнительным кодом, вам не нужно это делать самостоятельно. Валидации будут позаботиться сами по себе: React.
  2. Не так, есть разница между Parent и Root компонентом. Parent Компонент может быть ребенком другого Parent который может быть ребенком другого. Итак, назовите его как компонент Root, который будет находиться в верхней части дерева пользовательского интерфейса. С помощью этого определения можно сказать, что PropType применим только к Parent и Child, а не к Root компоненту.
  3. Вам не нужно проверять stateType, так как state находится в области компонентов. Но, props передаются от компонента к другому. Таким образом, не имеет смысла проверять state компонента, так как он не разделяется между компонентами. Даже если это общий доступ, это можно сделать только через props.

Надеется, что это помогает ...

+0

Благодарим вас за ответ. У вас есть какие-то сведения о моих дополнительных вопросах? – JohnnyQ

+0

@JohnnyQ Добавил ответы. Надеюсь, поможет! –

+0

@Pranesh Ravi Что делать, если реквизит происходит из магазина redux, нам все еще нужно определить proptypes? –

0
  1. PropTypes позволяют проверить свои реквизиты, которые в противном случае не представляется возможным, так как JavaScript свободно типизированный язык.

  2. У вас может быть props, где бы вы ни находились, включая родителей. Или их вообще нет. Часто props - это единственный способ передать некоторые значения или обратные вызовы от родителей к детям и внукам (на самом деле это рекомендуется).

  3. Нет государственных типов.

+0

Благодарим за сообщение. Итак, как мы можем проверить типы начальных состояний, инициализированных родительскими/главными компонентами? – JohnnyQ

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