Sobes.tech
Back to questions
Junior — Middle
58

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

Answer from AI

sobes.tech AI

Классовые компоненты в React — это компоненты, основанные на ES6 классах, которые имеют собственный state и жизненный цикл через методы вроде componentDidMount. Функциональные компоненты — это функции, которые возвращают JSX. С появлением хуков функциональные компоненты могут управлять состоянием и побочными эффектами.

Преимущества функциональных компонентов:

  • Проще и короче писать
  • Легче тестировать
  • Используют хуки для управления состоянием и эффектами
  • Меньше проблем с this

Недостатки классовых компонентов:

  • Более громоздкий синтаксис
  • Сложнее работать с this

Пример функционального компонента с хуком 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>
  );
}

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