React ha revolucionado la manera en que desarrollamos interfaces de usuario. Uno de los cambios más significativos en las versiones recientes es el uso de componentes funcionales y hooks. Estos elementos han simplificado y potenciado el desarrollo de aplicaciones en React, permitiendo escribir código más limpio y eficiente. En este post, exploraremos cómo utilizar componentes funcionales y hooks en React, y proporcionaremos ejemplos prácticos para ilustrar su uso.

Componentes Funcionales

Los componentes funcionales son funciones de JavaScript que retornan elementos de React. Son más simples y ligeros que los componentes de clase y permiten un desarrollo más conciso.

import React from 'react';

function Welcome(props) {
  return <h1>Hola, {props.name}</h1>;
}

Hooks

Los hooks son funciones especiales que permiten “engancharse” a las características de React, como el estado y el ciclo de vida de los componentes. Los hooks más comunes son useState y useEffect.

useState

El hook useState permite añadir estado a un componente funcional.

import React, { useState } from 'react';

function Contador() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Has hecho clic {count} veces</p>
      <button onClick={() => setCount(count + 1)}>
        Haz clic
      </button>
    </div>
  );
}

useEffect

El hook useEffect permite realizar efectos secundarios en componentes funcionales, como la obtención de datos o la manipulación del DOM.

import React, { useState, useEffect } from 'react';

function Ejemplo() {
  const [count, setCount] = useState(0);

  useEffect(() => {
    document.title = `Has hecho clic ${count} veces`;
  }, [count]);

  return (
    <div>
      <p>Has hecho clic {count} veces</p>
      <button onClick={() => setCount(count + 1)}>
        Haz clic
      </button>
    </div>
  );
}

Ejemplo Completo

A continuación, un ejemplo completo que combina useState y useEffect en un componente funcional.

import React, { useState, useEffect } from 'react';

function App() {
  const [count, setCount] = useState(0);

  useEffect(() => {
    document.title = `Has hecho clic ${count} veces`;
  }, [count]);

  return (
    <div>
      <p>Has hecho clic {count} veces</p>
      <button onClick={() => setCount(count + 1)}>
        Haz clic
      </button>
    </div>
  );
}

export default App;

Conclusión

Los componentes funcionales y hooks han simplificado considerablemente el desarrollo con React. Permiten escribir código más claro y conciso, facilitando la reutilización y mantenimiento de componentes. Integrar estos elementos en tus proyectos de React te permitirá aprovechar al máximo las capacidades del framework y mejorar la calidad de tu código.