Lädt...


🔧 Una Visión Completa de los Hooks Integrados en React 🚀


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

Los Hooks en React te permiten usar las características de React desde tus componentes funcionales. Aquí tienes una guía sobre los hooks integrados más importantes y cómo usarlos con ejemplos.

Hooks de Estado 🧠

useState

useState te permite agregar estado a un componente funcional.

import { useState } from "react";

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

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}

useReducer

useReducer es útil para manejar estados complejos con lógica de actualización dentro de una función reductora.

import { useReducer } from "react";

const initialState = { count: 0 };

function reducer(state, action) {
  switch (action.type) {
    case 'increment':
      return { count: state.count + 1 };
    case 'decrement':
      return { count: state.count - 1 };
    default:
      throw new Error();
  }
}

function Counter() {
  const [state, dispatch] = useReducer(reducer, initialState);

  return (
    <div>
      <p>Count: {state.count}</p>
      <button onClick={() => dispatch({ type: 'increment' })}>Increment</button>
      <button onClick={() => dispatch({ type: 'decrement' })}>Decrement</button>
    </div>
  );
}

Hooks de Contexto 🌐

useContext

useContext permite a un componente suscribirse a un contexto sin pasar props.

import { useContext } from "react";
import { ThemeContext } from "./ThemeContext";

function ThemedButton() {
  const theme = useContext(ThemeContext);

  return (
    <button style={{ background: theme.background, color: theme.color }}>
      Themed Button
    </button>
  );
}

Hooks de Referencia 🪝

useRef

useRef te permite acceder a un elemento DOM directamente.

import { useRef } from "react";

function TextInput() {
  const inputRef = useRef(null);

  const focusInput = () => {
    inputRef.current.focus();
  };

  return (
    <div>
      <input ref={inputRef} type="text" />
      <button onClick={focusInput}>Focus Input</button>
    </div>
  );
}

Hooks de Efecto 🌟

useEffect

useEffect se usa para efectos secundarios en componentes, como obtener datos o suscribirse a eventos.

import { useEffect, useState } from "react";

function DataFetcher({ url }) {
  const [data, setData] = useState(null);

  useEffect(() => {
    const fetchData = async () => {
      const response = await fetch(url);
      const result = await response.json();
      setData(result);
    };

    fetchData();
  }, [url]);

  return (
    <div>
      <pre>{JSON.stringify(data, null, 2)}</pre>
    </div>
  );
}

Hooks de Performance ⚡

useMemo

useMemo memoriza un cálculo costoso y lo reutiliza.

import { useMemo } from "react";

function TodoList({ todos, tab }) {
  const visibleTodos = useMemo(() => {
    return todos.filter(todo => todo.tab === tab);
  }, [todos, tab]);

  return (
    <ul>
      {visibleTodos.map(todo => (
        <li key={todo.id}>{todo.text}</li>
      ))}
    </ul>
  );
}

useCallback

useCallback memoriza una función para evitar recrearla en cada renderizado.

import { useCallback } from "react";

function ParentComponent() {
  const handleClick = useCallback(() => {
    console.log("Button clicked");
  }, []);

  return <ChildComponent onClick={handleClick} />;
}

function ChildComponent({ onClick }) {
  return <button onClick={onClick}>Click me</button>;
}

Hooks de Transición 🌈

useTransition

useTransition marca una transición de estado como no bloqueante.

import { useState, useTransition } from "react";

function List({ items }) {
  const [isPending, startTransition] = useTransition();
  const [query, setQuery] = useState('');

  const handleChange = (e) => {
    startTransition(() => {
      setQuery(e.target.value);
    });
  };

  const filteredItems = items.filter(item => item.includes(query));

  return (
    <div>
      <input type="text" value={query} onChange={handleChange} />
      {isPending && <p>Loading...</p>}
      <ul>
        {filteredItems.map(item => (
          <li key={item}>{item}</li>
        ))}
      </ul>
    </div>
  );
}

useDeferredValue

useDeferredValue difiere la actualización de una parte no crítica de la UI.

import { useState, useDeferredValue } from "react";

function SearchResults({ query, results }) {
  const deferredQuery = useDeferredValue(query);

  const filteredResults = results.filter(item => item.includes(deferredQuery));

  return (
    <ul>
      {filteredResults.map(result => (
        <li key={result}>{result}</li>
      ))}
    </ul>
  );
}

Conclusión 🎉

Los Hooks en React son herramientas poderosas que te permiten gestionar el estado, el contexto, los efectos y la performance de tus componentes funcionales de manera eficiente. Utilizar estos hooks de forma correcta puede mejorar significativamente la calidad y mantenibilidad de tu código. Happy coding! 🚀

...

🔧 Una Visión Completa de los Hooks Integrados en React 🚀


📈 113.09 Punkte
🔧 Programmierung

🔧 React Hooks - Top7 Most Commonly Used React Hooks for Efficient Component Management


📈 42.53 Punkte
🔧 Programmierung

🔧 Guía Completa para Crear una Instancia EC2 en AWS


📈 40.51 Punkte
🔧 Programmierung

🔧 Guía Completa para Crear una Web Estática con AWS S3 y AWS CLI


📈 40.51 Punkte
🔧 Programmierung

🔧 Dominando Set en JavaScript: Una Guía Completa


📈 40.51 Punkte
🔧 Programmierung

🔧 Dominando Map en JavaScript: Una Guía Completa


📈 40.51 Punkte
🔧 Programmierung

🔧 Dominando Array en JavaScript: Una Guía Completa


📈 40.51 Punkte
🔧 Programmierung

🔧 Dominando Object en JavaScript: Una Guía Completa


📈 40.51 Punkte
🔧 Programmierung

🔧 Dominando Objetos en JavaScript: Una Guía completa


📈 40.51 Punkte
🔧 Programmierung

🍏 Cómo tomar una captura de pantalla de página completa en un Mac


📈 40.51 Punkte
🍏 iOS / Mac OS

🔧 Learn React Hooks – Common Hooks Explained with Code Examples


📈 35.68 Punkte
🔧 Programmierung

🔧 scriptkavi/hooks: Customizable and Open Source React Hooks


📈 35.68 Punkte
🔧 Programmierung

🔧 Bloodline of Hooks: Custom Hooks in React for Advanced Devs


📈 35.68 Punkte
🔧 Programmierung

🔧 React Hooks – How to Use the useState & useEffect Hooks in Your Project


📈 35.68 Punkte
🔧 Programmierung

🔧 React Hooks – How to Use the useState & useEffect Hooks in Your Project


📈 35.68 Punkte
🔧 Programmierung

🔧 Deep Dive into React 🚀🚀Hooks: useState, useEffect, and Custom Hooks 🔍


📈 35.68 Punkte
🔧 Programmierung

🔧 Deep Dive into React Hooks: useState, useEffect, and Custom Hooks


📈 35.68 Punkte
🔧 Programmierung

🔧 Testes integrados com Wiremock


📈 33.73 Punkte
🔧 Programmierung

🔧 Testes integrados com Spring


📈 33.73 Punkte
🔧 Programmierung

📰 AENOR trabaja en una certificación para garantizar una IA ética y responsable


📈 33.58 Punkte
📰 IT Security Nachrichten

🔧 ** Construyendo una API REST: Una Aventura LEGO🚀 **


📈 33.58 Punkte
🔧 Programmierung

🕵️ Low CVE-2019-14804: UNA UNA


📈 33.58 Punkte
🕵️ Sicherheitslücken

🔧 Comprendiendo el Sesgo Cultural en la Visión por Computadora con IA: Una Visión Técnica


📈 31.62 Punkte
🔧 Programmierung

🔧 Flutter Hooks Tutorial: Flutter Animation Using Hooks (useEffect and useAnimationController)


📈 28.83 Punkte
🔧 Programmierung

🔧 Unlocking React's Power: Understanding React's Core Hooks


📈 28.11 Punkte
🔧 Programmierung

🔧 Form Validation in React: An In-Depth Tutorial with Hooks and React Hook Form


📈 28.11 Punkte
🔧 Programmierung

🔧 Optimizing React Performance with Redux and React Hooks


📈 28.11 Punkte
🔧 Programmierung

🔧 Optimizing React Performance with Redux and React Hooks


📈 28.11 Punkte
🔧 Programmierung

🔧 Optimizing React Performance with Redux and React Hooks


📈 28.11 Punkte
🔧 Programmierung

🔧 Revolutionizing React: Unveiling the New Hooks in React 19🚀


📈 28.11 Punkte
🔧 Programmierung

🔧 Mastering React: A Guide to the Most Important React Hooks


📈 28.11 Punkte
🔧 Programmierung

🔧 This Week In React #185: React Conf, React Query, refs, Next.js after, mini-react...


📈 27.4 Punkte
🔧 Programmierung

🔧 This Week In React #185: React Conf, React Query, refs, Next.js after, mini-react...


📈 27.4 Punkte
🔧 Programmierung

📰 El uso de la IA arroja una ventaja competitiva para el 72% de los ejecutivos españoles


📈 26.96 Punkte
📰 IT Security Nachrichten

matomo