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

Вопрос проверяет понимание двух основных подходов к созданию компонентов в React: классового и функционального. Он помогает оценить знания о различных способах работы с состоянием и жизненными циклами компонентов.

Короткий ответ

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

Длинный ответ

Классовые компоненты были основным способом создания компонентов с состоянием и методами жизненного цикла до введения хуков. Они используют классы и методы, такие как render(), componentDidMount(), componentDidUpdate(), для управления состоянием и побочными эффектами. Например:

class MyComponent extends React.Component {
  constructor(props) {
      super(props);    
      this.state = { count: 0 };  
  }  render() {
      return <div>{this.state.count}</div>;  
  } 
}

С появлением хуков функциональные компоненты стали предпочтительнее, так как они проще по структуре. Хуки, такие как useState и useEffect, позволяют функциональным компонентам управлять состоянием и жизненными циклами. Например:

function MyComponent() {
  const [count, setCount] = useState(0);
    
  useEffect(() => {
      document.title = `You clicked ${count} times`;  
  }, [count]);  
  
  return <div>{count}</div>; 
}

Функциональные компоненты более читаемы, легче тестируются и обеспечивают лучшую производительность за счет оптимизаций, таких как useMemo и useCallback.

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • React

    React

Ключевые слова

Подпишись на React Developer в телеграм