will sheet react getderivedstatefromprops example componentwillupdate componentwillreceiveprops componentdidmount component cheat reactjs

reactjs - getderivedstatefromprops - react lifecycle cheat sheet



¿Por qué los documentos React recomiendan hacer AJAX en componentDidMount, no componentWillMount? (3)

De acuerdo con la configuración de la documentación, el estado en componentWillMount no activará una nueva representación. Si la llamada AJAX no se está bloqueando y usted devuelve una Promise que actualiza el estado del componente en caso de éxito, hay posibilidades de que la respuesta llegue una vez que el componente se haya procesado. Como componentWillMount no activa una nueva representación, no tendrá el comportamiento que esperaba, que es el componente que se representa con los datos solicitados.

Si usa cualquiera de las bibliotecas de flujo y los datos solicitados terminan en la tienda a la que está conectado el componente (o hereda de un componente conectado), esto no será un problema, ya que la recepción de esos datos probablemente cambiará los accesorios. finalmente.

El título lo dice todo. Entiendo por qué componentDidMount es apropiado para cualquier cosa que requiera acceso DOM, pero una solicitud AJAX no necesariamente o por lo general necesita esto.

¿Lo que da?


También tuve el mismo problema al principio. Decidí intentar hacer solicitudes en componentWillMount pero termina en varios problemas pequeños.

Estaba activando el procesamiento cuando la llamada ajax termina con nuevos datos. En algún momento, la representación del componente tomó más tiempo que obtener la respuesta del servidor y en este punto la devolución de llamada ajax estaba activando la representación en el componente desmontado. Este es un caso marginal, pero probablemente haya más, por lo que es más seguro apegarse a componentDidMount .


componentDidMount es para efectos secundarios. Agregar oyentes de eventos, AJAX, mutar el DOM, etc.

componentWillMount rara vez es útil; especialmente si le interesa la representación del lado del servidor (agregar escuchas de eventos causa errores y fugas, y muchas otras cosas que pueden salir mal).

Se habla de eliminar componentWillMount de los componentWillMount de la clase, ya que tiene el mismo propósito que el constructor. Permanecerá en los componentes de createClass .