Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

265
Vistas
¿Qué hace exactamente useContext detrás de escena?

Hola a todos , soy nuevo en React . Estaba tratando de crear un estado global usando la API de contexto . Me encontré con algo inesperado. Lo que aprendí es que cuando se crea un contexto, tiene un proveedor que envolverá los componentes que necesitan los datos y cuando el valor cambia, el proveedor volverá a representar todos los componentes envueltos, ¿verdad?

Mira esto:

 // AuthContext.js export const AuthContext = createContext(null); const AuthProvider = ({ children }) => { const [user, setUser] = useState({ name: null, }); return ( <AuthContext.Provider value={{ user, setUser }}> {children} </AuthContext.Provider> ); };
 // index.js <AuthProvider> <App /> </AuthProvider>
 // App.js function App() { console.log("[App] ran"); return ( <> <Dashboard /> <Login /> </> ); }
 // Dashboard.js function Dashboard() { console.log("[Dashboard] ran"); return <div>Dashboard</div>; }
 // Login.js function Login() { console.log("[Login] ran"); const { user, setUser } = useContext(AuthContext); const inputNameRef = useRef(); return ( <div> <input placeholder="Enter your name..." ref={inputNameRef} /> <button onClick={() => { setUser(inputNameRef.current.value); }} > Submit </button> </div> ); }

Cuando el código se ejecuta por primera vez, la salida es:

[Aplicación] corrió

[Tablero] corrió

[Iniciar sesión] corrió

y cuando se hace clic en el botón Enviar , se llamará a la función setUser y se establecerá un nuevo valor en el estado AuthProvider. El proveedor debe volver a procesar todos los componentes, y la salida anterior debe registrarse nuevamente, pero no, la salida es solo:

[Iniciar sesión] corrió

Algo que es interesante para mí es que cuando uso useContext en el componente Dashboard funciona, quiero decir que el componente se volverá a representar. Está relacionado con el gancho useContext , creo, pero no sé cómo funciona. ¿Qué está pasando debajo del capó?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Para citar la documentación oficial de React sobre Contexto ( https://reactjs.org/docs/context.html ):

Todos los consumidores que son descendientes de un proveedor se volverán a renderizar cada vez que cambie la propuesta de valor del proveedor. La propagación de Provider a sus consumidores descendientes (incluidos .contextType y useContext) no está sujeta al método shouldComponentUpdate, por lo que el consumidor se actualiza incluso cuando un componente ancestro omite una actualización.

Puede pensar en "consumidor" como el componente cuyo estado "consume" el gancho useContext . AKA, solo verá una nueva representación de los componentes donde se usa el gancho. De esta manera, no TODOS los niños dentro de un proveedor de contexto se volverán a representar en un cambio de estado, solo aquellos que lo consuman.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda