Sobes.tech
Назад к вопросам
Junior — Middle
63

Чем отличаются функциональные компоненты от классовых в React и в каких случаях их предпочтительно использовать?

Ответ от нейросети

sobes.tech AI

В React существуют два основных типа компонентов: классовые и функциональные.

Классовые компоненты — это компоненты, определённые как классы, которые наследуются от React.Component. Они имеют собственное состояние (state) и методы жизненного цикла.

Функциональные компоненты — это функции, которые принимают props и возвращают JSX. Раньше они были «статическими» и не имели состояния, но с появлением хуков (hooks) функциональные компоненты могут использовать состояние и другие возможности React.

Отличия:

  • Классовые компоненты используют this для доступа к props и state, функциональные — нет.
  • Функциональные компоненты обычно короче и проще.
  • Хуки позволяют функциональным компонентам иметь состояние и эффекты, что раньше было доступно только в классовых.

Когда использовать:

  • Предпочтительно использовать функциональные компоненты с хуками, так как они проще, легче тестируются и поддерживаются.
  • Классовые компоненты могут использоваться в старом коде или если есть специфические требования, но сейчас их рекомендуют заменять на функциональные.

Пример функционального компонента с хуком useState:

import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Счётчик: {count}</p>
      <button onClick={() => setCount(count + 1)}>Увеличить</button>
    </div>
  );
}

Таким образом, функциональные компоненты с хуками — современный и предпочтительный способ создания компонентов в React.