Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

229
Views
Reaccionar ref vs estado para representar una lista de elementos según el estado de carga

Considere las siguientes dos implementaciones básicas en React para generar una lista de elementos. Tanto el enfoque mostrará los datos correctos.

El primero causará un renderizado menos ya que todos los datos de los elementos persisten en una referencia.

En el segundo, agregamos el elemento nuevo y devolvemos un nuevo objeto de matriz para que la configuración de los elementos provoque un procesamiento. Procedimiento estándar de establecimiento del estado de reacción.

No se preocupe por el manejo de errores. Suponga que obtener un artículo nuevo siempre funcionará.

¿El primero está mal o tendrá algún efecto secundario que siempre deba ir con el segundo?

ingrese la descripción de la imagen aquí

Código de referencia :-

 import { useRef } from "react"; export default function App() { const items = useRef([]); const [isLoading, setLoadingState] = useState(false); const loadItems = async () => { setLoadingState(true); const newItem = await simulatePromise(); items.current.push(newItem); setLoadingState(false); }; return ( <div className="App"> <button disabled={isLoading} onClick={loadItems}>Load</button> <ul> {items.current.map((item) => ( <li key={item.id}>{item.title}</li> ))} </ul> {isLoading && <p>Loading....</p>} </div> ); }

Código del estado :-

 import { useState } from "react"; export default function App() { const [items,setItems] = useState([]); const [isLoading, setLoadingState] = useState(false); const loadItems = async () => { setLoadingState(true); const newItem = await simulatePromise(); setItems(prevItems=>[...prevItems,newItem]); setLoadingState(false); }; return ( <div className="App"> <button disabled={isLoading} onClick={loadItems}>Load</button> <ul> {items.map((item) => ( <li>{item.title}</li> ))} </ul> {isLoading && <p>Loading....</p>} </div> ); }
about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!