77 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			77 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								---
							 | 
						||
| 
								 | 
							
								title: Life Cycle Methods Of A Component
							 | 
						||
| 
								 | 
							
								localeTitle: Métodos del ciclo de vida de un componente
							 | 
						||
| 
								 | 
							
								---
## Métodos del ciclo de vida de un componente
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Cuando comenzamos a trabajar con componentes, necesitamos realizar varias acciones para actualizar el estado o realizar algunas acciones cuando algo cambia en ese componente. En este escenario, ¡los métodos de ciclo de vida de un componente son útiles! Así que vamos a sumergirnos en ellos en este artículo.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								En términos generales, podemos dividir los métodos del ciclo de vida en **3** categorías.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1.  Montaje
							 | 
						||
| 
								 | 
							
								2.  Actualizando
							 | 
						||
| 
								 | 
							
								3.  Desmontaje
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Como los métodos del ciclo de vida son autoexplicativos, solo mencionaré los nombres de los métodos. Por favor, siéntase libre de contribuir a este artículo, si es necesario.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Montaje:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								a. `constructor()`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								segundo. `componentWillMount()`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								do. `render()`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								re. `componentDidMount()`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Actualizando:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								a. `componentWillRecieveProps()`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								segundo. `shouldComponentUpdate()`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								do. `componentWillUpdate()`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								re. `render()`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								mi. `componentDidUpdate()`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Desmontaje:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								a. `componentWillUnmount()`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Algunos datos interesantes a tener en cuenta:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*   `constructor` , `componentWillMount` , `componentDidMount` y `componentWillUnmount` se llamarán solo una vez durante el ciclo de vida de un componente.
							 | 
						||
| 
								 | 
							
								*   `componentWillUpdate` , y `componentDidUpdate` solo se ejecutarán si y solo si `shouldComponentUpdate` devuelve true.
							 | 
						||
| 
								 | 
							
								*   Se llamará a `componentWillUnmount()` justo antes de desmontar cualquier componente y, por lo tanto, se puede usar para liberar la memoria utilizada, cerrar cualquier conexión a DB, etc.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Se pueden aprender muchas cosas sumergiéndose en la codificación. Así que ensucia tus manos codificando.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Nota:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								> "Las advertencias de desaprobación se habilitarán con una futura versión 16.x, **pero los ciclos de vida heredados continuarán funcionando hasta la versión 17.** " 1
							 | 
						||
| 
								 | 
							
								> 
							 | 
						||
| 
								 | 
							
								> "Incluso en la versión 17, aún será posible usarlos, pero tendrán un alias con un prefijo" SEGURO\_ "para indicar que podrían causar problemas. También hemos preparado un [script automatizado para cambiar el nombre](https://github.com/reactjs/react-codemod#rename-unsafe-lifecycles) en el código existente". 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								En otras palabras, estos métodos de ciclos de vida anteriores aún estarán disponibles como:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*   `UNSAFE_componentWillMount`
							 | 
						||
| 
								 | 
							
								*   `UNSAFE_componentWillReceiveProps`
							 | 
						||
| 
								 | 
							
								*   `UNSAFE_componentWillUpdate`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Nuevos métodos de ciclo de vida
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Se introducirán nuevos métodos de ciclo de vida en React 17
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								*   `getDerivedStateFromProps` será una alternativa más segura a `componentWillReceiveProps` .
							 | 
						||
| 
								 | 
							
								*   `getSnapshotBeforeUpdate` agregará `getSnapshotBeforeUpdate` para admitir la lectura segura de las propiedades de DOM.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Se pueden aprender muchas cosas sumergiéndose en la codificación. Así que ensucia tus manos codificando.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Fuentes
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								1.  [Vaughn, Brian. "React v16.3.0: nuevos ciclos de vida y API de contexto". 29 de marzo de 2018. Acceso: 22 de mayo de 2018.](https://reactjs.org/blog/2018/03/29/react-v-16-3.html)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### Recursos
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[Actualización sobre renderizado asíncrono](https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html)
							 |