Back to questions
Junior — Middle
64
Чем отличаются функциональные компоненты от классовых в React и в каких случаях их предпочтительно использовать?
Answer from AI
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.