Передача данных между родительским и дочерним компонентами в React

В React существует несколько методов передачи данных между родительским компонентом и его дочерним компонентом, а также от дочернего компонента к его родительскому компоненту. Вот некоторые часто используемые методы:

  1. От родителя к дочернему элементу: реквизиты данных
    • Родительский компонент может передавать данные дочернему компоненту с помощью реквизита. Он может включать данные в качестве реквизита при рендеринге дочернего компонента, а дочерний компонент может получать доступ к данным через свои реквизиты.

Пример:

// Parent Component
import React from 'react';
import ChildComponent from './ChildComponent';
const ParentComponent = () => {
  const data = 'Hello from parent';
  return <ChildComponent data={data} />;
};
// Child Component
import React from 'react';
const ChildComponent = (props) => {
  return <div>{props.data}</div>;
};
  1. От ребенка к родителю: функции обратного вызова
    • Дочерний компонент может взаимодействовать с родительским компонентом, передав функцию обратного вызова в качестве свойства. Родительский компонент может определить функцию обратного вызова и передать ее дочернему компоненту. Затем дочерний компонент может вызвать функцию обратного вызова и передать данные обратно родительскому компоненту.

Пример:

// Parent Component
import React from 'react';
import ChildComponent from './ChildComponent';
const ParentComponent = () => {
  const handleData = (data) => {
    console.log('Data received from child:', data);
  };
  return <ChildComponent onData={handleData} />;
};
// Child Component
import React from 'react';
const ChildComponent = (props) => {
  const handleClick = () => {
    const data = 'Hello from child';
    props.onData(data);
  };
  return <button onClick={handleClick}>Send Data to Parent</button>;
};

Это всего лишь пара методов передачи данных между родительскими и дочерними компонентами в React. Существуют и другие продвинутые методы, например использование библиотек управления контекстом или состоянием, таких как Redux или MobX, для более сложных сценариев.