Встречается на собеседованиях • сегодня
Сможешь ли переписать классовый компонент на функциональный
Да, переписать классовый компонент на функциональный можно. Основные отличия:
1. Вместо `this.state` используем `useState`:
```jsx
// Классовый
this.state = { count: 0 };
// Функциональный
const [count, setCount] = useState(0);
```
2. Жизненные циклы заменяем на `useEffect`:
```jsx
// componentDidMount
useEffect(() => {
// код
}, []);
// componentDidUpdate
useEffect(() => {
// код
}, [dependency]);
// componentWillUnmount
useEffect(() => {
return () => {
// cleanup
};
}, []);
```
3. Методы класса становятся обычными функциями внутри компонента. Контекст (`this`) больше не нужен.
Пример перевода:
```jsx
// Классовый
class Counter extends React.Component {
state = { count: 0 };
increment = () => this.setState({ count: this.state.count + 1 });
render() {
return ;
}
}
// Функциональный
function Counter() {
const [count, setCount] = useState(0);
const increment = () => setCount(count + 1);
return ;
}
```
Функциональные компоненты проще, компактнее и поддерживают хуки.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы