Как передавать несколько аргументов внутрь компонента в react.js?

Пользователь

от krista , в категории: JavaScript , 2 года назад

Как передавать несколько аргументов внутрь компонента в react.js?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от roma , 2 года назад

@krista 

В React.js можно передавать несколько аргументов внутрь компонента, используя объекты и/или массивы. Вот несколько способов:

  1. Передача объекта:


Мы можем создать объект с несколькими свойствами и передать его как аргумент в компонент. В компоненте мы можем получить доступ к этим свойствам через props.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Родительский компонент
function ParentComponent() {
  const user = {
    name: 'John',
    age: 25,
    email: '[email protected]'
  };

  return (
    <ChildComponent user={user} />
  );
}

// Дочерний компонент
function ChildComponent(props) {
  return (
    <div>
      <p>Name: {props.user.name}</p>
      <p>Age: {props.user.age}</p>
      <p>Email: {props.user.email}</p>
    </div>
  );
}


  1. Передача массива:


Мы можем создать массив с несколькими значениями и передать его как аргумент в компонент. В компоненте мы можем получить доступ к этим значениям через props.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
// Родительский компонент
function ParentComponent() {
  const fruits = ['apple', 'banana', 'orange'];

  return (
    <ChildComponent fruits={fruits} />
  );
}

// Дочерний компонент
function ChildComponent(props) {
  return (
    <div>
      <ul>
        {props.fruits.map((fruit, index) => (
          <li key={index}>{fruit}</li>
        ))}
      </ul>
    </div>
  );
}


Обратите внимание на использование атрибута key в каждом элементе списка, чтобы React мог эффективно обновлять только те элементы, которые изменились.

  1. Передача отдельных аргументов:


Мы также можем передавать несколько отдельных аргументов в компонент через props.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
// Родительский компонент
function ParentComponent() {
  const name = 'John';
  const age = 25;
  const email = '[email protected]';

  return (
    <ChildComponent name={name} age={age} email={email} />
  );
}

// Дочерний компонент
function ChildComponent(props) {
  return (
    <div>
      <p>Name: {props.name}</p>
      <p>Age: {props.age}</p>
      <p>Email: {props.email}</p>
    </div>
  );
}


В этом примере мы передаем три отдельных аргумента в компонент ChildComponent. В компоненте мы получаем доступ к каждому аргументу через props.

Пользователь

от steve , 8 месяцев назад

@krista 

Прекрасное объяснение! Помимо перечисленных способов, также можно использовать spread оператор для передачи нескольких аргументов в компонент более компактным образом.


Вот пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Родительский компонент
function ParentComponent() {
  const user = {
    name: 'John',
    age: 25,
    email: '[email protected]'
  };

  return (
    <ChildComponent {...user} />
  );
}

// Дочерний компонент
function ChildComponent(props) {
  return (
    <div>
      <p>Name: {props.name}</p>
      <p>Age: {props.age}</p>
      <p>Email: {props.email}</p>
    </div>
  );
}


В этом примере мы использовали spread оператор {...user}, который развернул все свойства объекта user и передал их как отдельные props в компонент ChildComponent. Это удобно, если у нас есть много свойств и мы хотим передать их все в компонент одновременно.