САМОСТОЯТЕЛЬНОЕ ОБУЧЕНИЕ ДЛЯ ВЕБ РАЗРАБОТЧИКОВ

React Реквизит



Реквизит - это аргументы, передаваемые в компоненты React.

Реквизит передаются компонентам через HTML атрибуты.


React Props

React реквизиты подобны аргументам функций в JavaScript и атрибутам в HTML.

Для отправки реквизитов в компонент используйте тот же синтаксис, что и атрибуты HTML:

Пример

Добавьте атрибут "brand" к элементу Car:

const myelement = <Car brand="Ford" />;

Компонент получает аргумент в виде объекта props:

Пример

Используйте атрибут "brand" в компоненте:

class Car extends React.Component {
  render() {
    return <h2>I am a {this.props.brand}!</h1>;
  }
}

Выполнить пример »


Передать данные

Реквизит - это также способ передачи данных от одного компонента к другому в качестве параметров.

Пример

Отправьте свойство "brand" из компонента гаража в компонент автомобиля:

class Car extends React.Component {
  render() {
    return <h2>I am a {this.props.brand}!</h2>;
  }
}

class Garage extends React.Component {
  render() {
    return (
      <div>
      <h1>Who lives in my garage?</h1>
      <Car brand="Ford" />
      </div>
    );
  }
}

ReactDOM.render(<Garage />, document.getElementById('root'));

Выполнить пример »

Если у вас есть переменная для отправки, а не строка, как в приведенном выше примере, вы просто помещаете имя переменной в фигурные скобки:

Пример

Создайте переменную с именем "carname" и послать его на компонент Car:

class Car extends React.Component {
  render() {
    return <h2>I am a {this.props.brand}!</h2>;
  }
}

class Garage extends React.Component {
  render() {
    const carname = "Ford";
    return (
      <div>
      <h1>Who lives in my garage?</h1>
      <Car brand={carname} />
      </div>
    );
  }
}

ReactDOM.render(<Garage />, document.getElementById('root'));

Выполнить пример »

Или если это был объект:

Пример

Создать объект по имени "carinfo" и послать его на компонент автомобиль:

class Car extends React.Component {
  render() {
    return <h2>I am a {this.props.brand.model}!</h2>;
  }
}

class Garage extends React.Component {
  render() {
    const carinfo = {name: "Ford", model: "Mustang"};
    return (
      <div>
      <h1>Who lives in my garage?</h1>
      <Car brand={carinfo} />
      </div>
    );
  }
}

ReactDOM.render(<Garage />, document.getElementById('root'));

Выполнить пример »


Реквизит в конструкторе

Если ваш компонент имеет функцию конструктора, то реквизиты всегда должны передаваться конструктору, а также React.Component через метод super().

Пример

class Car extends React.Component {
  constructor(props) {
    super(props);
  }
  render() {
    return <h2>I am a Car!</h2>;
  }
}

ReactDOM.render(<Car model="Mustang"/>, document.getElementById('root'));

Примечание: React реквизит доступен только для чтения! Вы получите ошибку, если попытаетесь изменить их значение.