... > React > Подъем состояния в...

Подъем состояния в React

НАВИГАЦИЯ ПО СТРАНИЦЕ

Как поднимать состояние вверх Связь

Подъем состояния (Lifting State Up) в React — это практика, при которой состояние компонента переносится вверх по иерархии компонентов, чтобы обеспечить единое управление состоянием между родительскими и дочерними компонентами.

Как поднимать состояние вверх по иерархии компонентов:

  • Определите общее состояние в родительском компоненте:

    Создайте общий родительский компонент, который содержит состояние, которое вы хотите использовать в различных дочерних компонентах.

import React, { useState } from 'react';

function ParentComponent() {
  const [sharedState, setSharedState] = useState('');

  return (
    <div>
      <ChildComponent sharedState={sharedState} setSharedState={setSharedState} />
    </div>
  );
}
  • Передайте состояние и функцию управления состоянием в дочерний компонент:

    Передайте состояние и функцию управления состоянием в дочерний компонент через пропсы.

function ChildComponent({ sharedState, setSharedState }) {
  return (
    <div>
      <p>Shared State: {sharedState}</p>
      <button onClick={() => setSharedState('New Value')}>Update State</button>
    </div>
  );
}
  • В этом примере, при клике на кнопку, состояние sharedState в родительском компоненте обновится, и это изменение будет отражено в дочернем компоненте.

Связь между родительскими и дочерними компонентами:

  • Данные передаются вниз (Props):

    Родительские компоненты передают данные дочерним через пропсы. Дочерние компоненты не могут напрямую изменять пропсы — они остаются неизменными для дочерних компонентов.

  • Функции передаются вниз (Callback Functions):

    Родительские компоненты могут передавать функции вниз по иерархии в виде пропсов, и дочерние компоненты могут вызывать эти функции для воздействия на родительские компоненты.

  • Состояние поднимается вверх (Lifting State Up):

    Если несколько компонентов нуждаются в общем состоянии, его можно поднять вверх по иерархии компонентов в родительский компонент. Это обеспечивает единое управление состоянием для всех компонентов.

Применение этих практик обеспечивает четкую структуру данных в вашем приложении и делает его более предсказуемым и легким в обслуживании.