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

526
Views
Next.js: ComponentWillMount frente a getInitialProps

Estoy usando Next.js para mi aplicación React porque tiene representación del lado del servidor. Como verifiqué por registro, ambos métodos, ComponentWillMount y getInitialProps , se ejecutan en el lado del servidor. ¿Hay alguna diferencia entre esos métodos?

¿Cuándo debo ejecutar ComponentWillMount y cuándo debo ejecutar getInitialProps ?

No veo menciones de Next.js sobre esto.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

ADVERTENCIA

El 50% de la respuesta aceptada es incorrecta. Este es el por qué. Permítanme dividir mi respuesta en dos secciones:

Parte 1:

  1. GetInitialProps suele ser una función asíncrona que es buena para operaciones asíncronas en el servidor y pasa datos a la página como accesorios.

  2. En Next.js siempre se ejecuta en el servidor, si se llama a la página usando Link, solo se llama en el lado del cliente

Incorrecto , GetInitialProps se ejecuta tanto en el servidor como en el navegador (recuerde que el objetivo de Next.js es hacer JavaScript universal). Esto es lo que dice la documentación:

Con eso, podemos obtener datos para una página determinada a través de una fuente de datos remota y pasarlos como accesorios a nuestra página. Podemos escribir nuestros getInitialProps para que funcionen tanto en el servidor como en el cliente. Entonces, Next.js puede usarlo tanto en el cliente como en el servidor.

Parte 2:

La segunda sección es para responder a la pregunta real con mayor precisión. Está claro que el OP se confundió entre ComponentDidMount y ComponentWillMount . Porque en el caso de Next.js tiene más sentido comparar GetInitialProps con ComponentDidMount, ya que ambos pueden realizar una llamada Async para obtener datos y también permiten la representación posterior (lo que no es posible en el caso de ComponentWillMount ).

En cualquier caso uses uno u otro, hay algunas diferencias:

GetInitialProps : lo proporciona Next.js y no siempre se activa, así que tenga cuidado con eso. Sucede cuando envuelves un componente dentro de otro. Si el componente principal tiene GetInitialProps, nunca se activará GetInitialProps del elemento secundario. Vea este hilo para más información.

ComponentDidMount : es la implementación de React y siempre se activa en el navegador.

Podría preguntar: 'entonces, ¿cuándo debo usar esto o aquello?'. En realidad es muy confuso y al mismo tiempo muy simple. Aquí hay una regla general:

  • Use GetInitialProps para obtener datos cuando su componente actúa como una página y desea proporcionar los datos como Props.
  • Use ComponentDidMount en componentes secundarios (que no son páginas) o cuando desee actualizar el estado en una llamada Ajax.
over 4 years ago · Santiago Trujillo Report

0

ObtenerAccesoriosIniciales

  1. GetInitialProps es una función generalmente asíncrona que es buena para operaciones asíncronas en el servidor y pasa datos a la página como accesorios.

  2. En Next.js siempre se ejecuta en el servidor, si se llama a la página mediante Link, solo se llama en el lado del cliente.

  3. Solo se puede usar en páginas, no en componentes.

ComponenteMontará

  1. Es un gancho de ciclo de vida. Se llama justo antes de llamar al método render. Los datos obtenidos en él no se pueden pasar como accesorios.

  2. Se puede llamar tanto en un componente como en páginas. No es un buen lugar para realizar llamadas asíncronas, ya que no espera a que se complete la operación asíncrona. Entonces, si se ejecuta en el servidor y su operación asíncrona está escrita en él, no se completará y llegará al cliente sin obtener datos.

over 4 years ago · Santiago Trujillo Report

0

componentWillMount son los métodos del ciclo de vida del componente .

Según la documentación

componentWillMount() se invoca inmediatamente antes de que se produzca el montaje. Se llama antes de render() , por lo tanto, llamar a setState() sincrónicamente en este método no activará una representación adicional. En general, recomendamos usar el constructor() en su lugar. Evite introducir efectos secundarios o suscripciones en este método. Para esos casos de uso, use componentDidMount() en su lugar. Este es el único enlace de ciclo de vida llamado en la representación del servidor.

over 4 years ago · Santiago Trujillo Report
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!