Componente Funcional
Os componentes funcionais são uma parte fundamental do ecossistema React, oferecendo uma abordagem concisa e elegante para a construção de interfaces de usuário. Esses componentes são essencialmente funções JavaScript que retornam elementos React, e eles desempenham um papel crucial no desenvolvimento de aplicações modernas.
Características dos componentes funcionais
Simplicidade
Componentes funcionais são mais concisos e diretos em comparação com componentes baseados em classes. A sintaxe de uma função é geralmente mais enxuta, facilitando a leitura e a manutenção do código.
Ausência de estado interno (até o React 16.8)
Antes da introdução dos Hooks no React 16.8, os componentes funcionais eram limitados a componentes stateless. Com a chegada dos Hooks, agora é possível ter estado e outras funcionalidades em componentes funcionais.
Menos boilerplate
A necessidade de escrever menos código boilerplate é uma vantagem significativa dos componentes funcionais. Isso resulta em um desenvolvimento mais eficiente e código mais limpo.
Sintaxe básica
// Exemplo de Componente Funcional
const Saudacao = (props) => {
return <div>{`Olá, ${props.nome}!`}</div>;
};
Neste exemplo, Saudacao
é um componente funcional que aceita um objeto props
e retorna um elemento React. Esse componente pode ser utilizado em outros lugares do código como qualquer outro componente React.
React Hooks
Com a introdução dos Hooks, componentes funcionais ganharam a capacidade de gerenciar estado interno e realizar efeitos colaterais, trazendo funcionalidades anteriormente associadas apenas a componentes baseados em classes.
import React, { useState, useEffect } from 'react';
const Contador = () => {
const [contador, setContador] = useState(0);
useEffect(() => {
document.title = `Contagem: ${contador}`;
}, [contador]);
return (
<div>
<p>Contagem: {contador}</p>
<button onClick={() => setContador(contador + 1)}>Incrementar</button>
</div>
);
};
No exemplo acima, useState
é um Hook que permite adicionar estado a um componente funcional, e useEffect
é utilizado para realizar efeitos colaterais após a renderização do componente.