Skip to main content
Практика завдань

Різниця між функціональними та класовими компонентми в React

Що таке компоненти в React?

Компоненти — це будівельні блоки React-додатків. Вони можуть бути:

  • Функціональні — звичайні JavaScript-функції
  • На основі класів — класи, що наслідують React.Component

Основні відмінності

****Функціональні компонентиКласи компоненти
Синтаксисfunction MyComponent()class MyComponent extends React.Component
Підтримка стануТак (через useState, useReducer)Так (через this.state)
Життєвий циклЧерез хуки (useEffect)Методи (componentDidMount тощо)
КонтекстuseContext()this.context
thisНемає thisВикористовує this
Стислість кодукоротший і простішийбільш детальний
Підтримка хуківТакНі
Продуктивність (теоретично)Трохи вищаТрохи нижча

Приклад функціонального компонент

jsx
import { useState, useEffect } from "react"; function Counter() { const [count, setCount] = useState(0); useEffect(() => { console.log("Компонент рендериться"); return () => { console.log("Компонент демонтується"); }; }, []); return ( <div> <p>Лічильник: {count}</p> <button onClick={() => setCount(count + 1)}>+</button> </div> ); }

Приклад класового компонент

jsx
import React from "react"; class Counter extends React.Component { constructor(props) { super(props); this.state = { count: 0 }; } componentDidMount() { console.log("Компонент рендериться"); } componentWillUnmount() { console.log("Компонент демонтується"); } render() { return ( <div> <p>Лічильник: {this.state.count}</p> <button onClick={() => this.setState({ count: this.state.count + 1 })}> + </button> </div> ); } }

Коли використовувати

  • Функціональні компоненти — сучасний стандарт. Використовуються в 99% випадків, особливо з хуками.
  • Класові компоненти — в наслiдних проектах або при роботі з застарілим кодом.

Висновок

  • Функціональні компоненти є простішими та зручнішими, особливо з появою хуків.
  • Класові компоненти вважаються застарілими і використовуються лише для зворотної сумісності.
  • Всім новим проектам рекомендується писати тільки за допомогою функціональних компонентів.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.

Дочитали статтю?
Практика завдань