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>
);
}
Таким образом, функциональные компоненты сейчас предпочтительнее для новых проектов.