Desde a implementação dos Hooks no React, usamos com mais frequência componentes funcionais em nossos projetos do que componentes de classes
Mas afinal, qual é a diferença entre Functional Components
e Class Components
?
Functional Components
São os componentes que encontraremos com maior frequência enquanto estivermos trabalhando com React. Basicamente são funções Javascript. Apenas.
1 | import React, { useState } from "react"; |
Class Components
Os componentes são escritos usando classes, sendo necessário estender React.Component
e é necessário ter um método render()
para retornar as informações em tela
1 | import React from "react"; |
Agora, resumidamente, as principais diferenças:
Functional Components | Class Components |
---|---|
Uma simples função que aceita props como argumento e retorna um elemento React; | Componente por classe exige que você estenda de React.Component |
Não existe método render() para exibir os elementos |
É obrigatório que tenha o método render retornando HTML |
Também conhecido como Componentes Stateless , por simplesmente aceitar um dado, sem necessidade de ter lógica nele |
Conhecido também como Stateful Components, visto que é implementado lógica e estados |
São usados os Hooks para seu ciclo de vida (useEffect) e useState para estados | São usados seus métodos para manipular o ciclo de vida, como por exemplo componentDidMount |