Реквізит просто скорочений для властивостей. Реквізит - це те, як компоненти спілкуються один з одним. Якщо ви взагалі знайомі з React, тоді ви повинні знати, що реквізит плине вниз від батьківського компонента.
Існує також випадок, що у вас можуть бути реквізити за замовчуванням, щоб реквізити були встановлені, навіть якщо батьківський компонент не передає реквізит вниз.
Ось чому люди називають React таким, що має однонаправлений потік даних. Це потребує трохи вашої голови, і я, мабуть, буду вести блог про це пізніше, але поки пам’ятайте лише: дані передаються від батьків до дитини. Реквізит незмінний (фантазійне слово для нього не змінюється)
Тож ми щасливі. Компоненти отримують дані від батьківського. Все відсортовано, правда?
Ну, не зовсім. Що відбувається, коли компонент отримує дані від когось іншого, ніж батьківський? Що робити, якщо користувач вводить дані безпосередньо до компонента?
Ну, ось чому ми маємо державу.
ДЕРЖАВ
Реквізити не повинні змінюватися, тому стан посилює. Зазвичай компоненти не мають стану, тому їх називають бездержавними. Компонент, що використовує стан, відомий як stateful. Сміливо киньте цей маленький примружок на вечірках і спостерігайте за тим, як люди віддаляються від вас.
Таким чином, стан використовується для того, щоб компонент міг відслідковувати інформацію між будь-якими рендерами, які він робить. Коли Ви встановитеState, він оновлює об'єкт стану, а потім повторно надає компонент. Це супер круто, тому що це означає, що React піклується про важку роботу і палає швидко.
Як невеликий приклад стану, ось фрагмент з панелі пошуку (варто ознайомитися з цим курсом, якщо ви хочете дізнатися більше про React)
Class SearchBar extends Component {
constructor(props) {
super(props);
this.state = { term: '' };
}
render() {
return (
<div className="search-bar">
<input
value={this.state.term}
onChange={event => this.onInputChange(event.target.value)} />
</div>
);
}
onInputChange(term) {
this.setState({term});
this.props.onSearchTermChange(term);
}
}
ПІДСУМОК
Реквізит і штат роблять подібні речі, але використовуються по-різному. Більшість ваших компонентів, ймовірно, будуть без громадянства.
Реквізити використовуються для передачі даних від батьків до дитини або самим компонентом. Вони незмінні і тому не будуть змінені.
Стан використовується для змінних даних або даних, які змінюватимуться. Це особливо корисно для введення користувачем. Придумайте, наприклад, панелі пошуку. Користувач введе дані, і це оновить побачене.