SlideShare una empresa de Scribd logo
1 de 3
Descargar para leer sin conexión
Efectos secundarios
En programación, llamamos efectos secundarios a las modificaciones
que alteran el estado de nuestro programa. Vamos a verlo en términos
prácticos comparando dos funciones:
(x,y)=> x + y
nombre = “”;
(value)=> nombre = value;
Decimos que la primera función no produce efectos secundarios, porque
la ejecución de la misma no altera nada fuera del alcance de esta
función, podemos ejecutar esta función cuantas veces queramos, y nada
cambiará.
Por otro lado, la segunda función cambia una variable fuera de la
ejecución de la función, alterando el estado de la app. Este es un efecto
secundario.
Cuando hablamos de React, si el componente ejecuta una operación que
altera el estado global de la app, estaríamos produciendo un efecto
secundario, en general, un componente debe hacer operaciones que
alteren al componente mismo, y no más. Por supuesto que hay muchas
excepciones, sin embargo, hay que tener en cuenta que el código que no
produce efectos secundarios es menos impredecible y más fácil de
debuggear.
Algunos ejemplos de efectos secundarios en un componente pueden ser,
realizar peticiones a un servidor con AJAX, alterar el DOM manualmente,
conectarse a una websocket, etc.
En un componente funcional, estas operaciones no se pueden ejecutar,
ya que las funciones de un componente, no producen efectos
secundarios.
Para poder ejecutar operaciones que produzcan efectos secundarios,
podemos usar el hook useEffect.
Como aprendiste en el vídeo anterior, useEffect nos permite enviar una
función que se ejecutará luego del render de una función, esta función
puede producir efectos secundarios, de ahí el nombre del hook useEffect.
En términos prácticos, useEffect es el lugar perfecto para:
• Ejecutar código como parte del ciclo de vida del componente
• Hacer peticiones AJAX
• Actualizar el DOM directamente, por ejemplo para reproducir un
vídeo
• Logging de cambios
useEffect recibe como segundo argumento después de la primer función
un arreglo. En este arreglo puedes pasar variables que se usarán para
determinar si el efecto debe ejecutarse o no. En la documentación de
React podemos ver un muy buen ejemplo:
import React, { useState, useEffect } from 'react';
function Example() {
const [count, setCount] = useState(0);
useEffect(() => {
document.title = `You clicked ${count} times`;
},[count]); // Solo se ejecuta si count cambió
entre un render y otro
return (
<div>
<button onClick={() => setCount(count + 1)}>
Click me
</button>
</div>
);
}
Cuando pasamos un arreglo vacío, useEffect sólo se ejecutará una vez
luego del primer render.
Por último, si una función se retorna del efecto, ésta se ejecutará luego
del último render una vez que el componente desaparezca de la interfaz.
Continuemos.

Más contenido relacionado

Similar a 21.-Efectos secundarios para el manejo de FSX.pdf

9 funciones...
9 funciones...9 funciones...
9 funciones...
alithu1
 
Introducción al uso de hooks en React js
Introducción al uso de hooks en React jsIntroducción al uso de hooks en React js
Introducción al uso de hooks en React js
yoviejito15
 

Similar a 21.-Efectos secundarios para el manejo de FSX.pdf (20)

expo
expoexpo
expo
 
9 funciones...
9 funciones...9 funciones...
9 funciones...
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
Retorno de valores
Retorno de valoresRetorno de valores
Retorno de valores
 
Introducción al uso de hooks en React js
Introducción al uso de hooks en React jsIntroducción al uso de hooks en React js
Introducción al uso de hooks en React js
 
JavaScript.pptx
JavaScript.pptxJavaScript.pptx
JavaScript.pptx
 
[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)
[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)
[Code Camp 2009] ASP.NET MVC a full (Matías Juan Rubí + Jonathan Solarz)
 
Funciones y procedimientos
Funciones y procedimientosFunciones y procedimientos
Funciones y procedimientos
 
Replayable Refactorings by Juan Cruz Gardey
Replayable Refactorings by Juan Cruz GardeyReplayable Refactorings by Juan Cruz Gardey
Replayable Refactorings by Juan Cruz Gardey
 
Presentación de celda virtual Robotcell / virtual cell using robotcell
Presentación de celda virtual Robotcell / virtual cell using robotcellPresentación de celda virtual Robotcell / virtual cell using robotcell
Presentación de celda virtual Robotcell / virtual cell using robotcell
 
Actividad 11
Actividad 11Actividad 11
Actividad 11
 
Actividad 11
Actividad 11Actividad 11
Actividad 11
 
Actividad 11
Actividad 11Actividad 11
Actividad 11
 
7 Razones para usar funciones PHP - Desarrollo web en php
7 Razones para usar funciones PHP - Desarrollo web en php7 Razones para usar funciones PHP - Desarrollo web en php
7 Razones para usar funciones PHP - Desarrollo web en php
 
Unidad 5 Programación de dispositivos moviles
Unidad 5 Programación de dispositivos movilesUnidad 5 Programación de dispositivos moviles
Unidad 5 Programación de dispositivos moviles
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
56874982 curso-de-delphi-7
56874982 curso-de-delphi-756874982 curso-de-delphi-7
56874982 curso-de-delphi-7
 
Evidencia: Sesión virtual “Funciones PHP"
 Evidencia: Sesión virtual “Funciones PHP" Evidencia: Sesión virtual “Funciones PHP"
Evidencia: Sesión virtual “Funciones PHP"
 
Evidencia: Sesión virtual “Funciones PHP”
Evidencia: Sesión virtual “Funciones PHP”Evidencia: Sesión virtual “Funciones PHP”
Evidencia: Sesión virtual “Funciones PHP”
 

Más de RolitoChc1

Más de RolitoChc1 (9)

gestion de entrada y salida de los procesos de los sistemas operativos.ppt
gestion de entrada y salida de los procesos de los sistemas operativos.pptgestion de entrada y salida de los procesos de los sistemas operativos.ppt
gestion de entrada y salida de los procesos de los sistemas operativos.ppt
 
tema7: gestion de entrada y salida los procesos en los sistemas.ppt
tema7: gestion de entrada y salida los procesos en los sistemas.ppttema7: gestion de entrada y salida los procesos en los sistemas.ppt
tema7: gestion de entrada y salida los procesos en los sistemas.ppt
 
Curso de Fundeweb2 desde cero a experto con ejemplos.ppt
Curso de Fundeweb2 desde cero a experto con ejemplos.pptCurso de Fundeweb2 desde cero a experto con ejemplos.ppt
Curso de Fundeweb2 desde cero a experto con ejemplos.ppt
 
Curso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.pptCurso Fundeweb2 para java desde cero a experto.ppt
Curso Fundeweb2 para java desde cero a experto.ppt
 
Tema II INTRODUCCION A LAS Maqunas Virtuales.ppt
Tema II INTRODUCCION A LAS Maqunas Virtuales.pptTema II INTRODUCCION A LAS Maqunas Virtuales.ppt
Tema II INTRODUCCION A LAS Maqunas Virtuales.ppt
 
05.-Primeros Pasos en JSXy ejercicios practicos paso a paso.pdf
05.-Primeros Pasos en JSXy ejercicios practicos paso a paso.pdf05.-Primeros Pasos en JSXy ejercicios practicos paso a paso.pdf
05.-Primeros Pasos en JSXy ejercicios practicos paso a paso.pdf
 
15.-Introducción a las props mas ejercicios.pdf
15.-Introducción a las props mas ejercicios.pdf15.-Introducción a las props mas ejercicios.pdf
15.-Introducción a las props mas ejercicios.pdf
 
15.-Introducción a las props con FSX y ejercicios.pdf
15.-Introducción a las props con FSX y ejercicios.pdf15.-Introducción a las props con FSX y ejercicios.pdf
15.-Introducción a las props con FSX y ejercicios.pdf
 
37.-Qué son los componentes de clase.pdf
37.-Qué son los componentes de clase.pdf37.-Qué son los componentes de clase.pdf
37.-Qué son los componentes de clase.pdf
 

Último

FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
El Fortí
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
jlorentemartos
 

Último (20)

Los avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtualesLos avatares para el juego dramático en entornos virtuales
Los avatares para el juego dramático en entornos virtuales
 
Biografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdfBiografía de Charles Coulomb física .pdf
Biografía de Charles Coulomb física .pdf
 
La Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración AmbientalLa Sostenibilidad Corporativa. Administración Ambiental
La Sostenibilidad Corporativa. Administración Ambiental
 
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptxEL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
EL HABITO DEL AHORRO en tu idea emprendedora22-04-24.pptx
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
semana 4 9NO Estudios sociales.pptxnnnn
semana 4  9NO Estudios sociales.pptxnnnnsemana 4  9NO Estudios sociales.pptxnnnn
semana 4 9NO Estudios sociales.pptxnnnn
 
Revista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdfRevista Apuntes de Historia. Mayo 2024.pdf
Revista Apuntes de Historia. Mayo 2024.pdf
 
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESOPrueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
Prueba de evaluación Geografía e Historia Comunidad de Madrid 2º de la ESO
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADOTIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
TIENDAS MASS MINIMARKET ESTUDIO DE MERCADO
 
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptxCONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
CONCURSO NACIONAL JOSE MARIA ARGUEDAS.pptx
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
TEMA 14.DERIVACIONES ECONÓMICAS, SOCIALES Y POLÍTICAS DEL PROCESO DE INTEGRAC...
 
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VSSEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
SEPTIMO SEGUNDO PERIODO EMPRENDIMIENTO VS
 
Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024Tema 10. Dinámica y funciones de la Atmosfera 2024
Tema 10. Dinámica y funciones de la Atmosfera 2024
 

21.-Efectos secundarios para el manejo de FSX.pdf

  • 1. Efectos secundarios En programación, llamamos efectos secundarios a las modificaciones que alteran el estado de nuestro programa. Vamos a verlo en términos prácticos comparando dos funciones: (x,y)=> x + y nombre = “”; (value)=> nombre = value; Decimos que la primera función no produce efectos secundarios, porque la ejecución de la misma no altera nada fuera del alcance de esta función, podemos ejecutar esta función cuantas veces queramos, y nada cambiará. Por otro lado, la segunda función cambia una variable fuera de la ejecución de la función, alterando el estado de la app. Este es un efecto secundario. Cuando hablamos de React, si el componente ejecuta una operación que altera el estado global de la app, estaríamos produciendo un efecto secundario, en general, un componente debe hacer operaciones que alteren al componente mismo, y no más. Por supuesto que hay muchas excepciones, sin embargo, hay que tener en cuenta que el código que no produce efectos secundarios es menos impredecible y más fácil de debuggear. Algunos ejemplos de efectos secundarios en un componente pueden ser, realizar peticiones a un servidor con AJAX, alterar el DOM manualmente, conectarse a una websocket, etc. En un componente funcional, estas operaciones no se pueden ejecutar, ya que las funciones de un componente, no producen efectos secundarios.
  • 2. Para poder ejecutar operaciones que produzcan efectos secundarios, podemos usar el hook useEffect. Como aprendiste en el vídeo anterior, useEffect nos permite enviar una función que se ejecutará luego del render de una función, esta función puede producir efectos secundarios, de ahí el nombre del hook useEffect. En términos prácticos, useEffect es el lugar perfecto para: • Ejecutar código como parte del ciclo de vida del componente • Hacer peticiones AJAX • Actualizar el DOM directamente, por ejemplo para reproducir un vídeo • Logging de cambios useEffect recibe como segundo argumento después de la primer función un arreglo. En este arreglo puedes pasar variables que se usarán para determinar si el efecto debe ejecutarse o no. En la documentación de React podemos ver un muy buen ejemplo: import React, { useState, useEffect } from 'react'; function Example() { const [count, setCount] = useState(0); useEffect(() => { document.title = `You clicked ${count} times`; },[count]); // Solo se ejecuta si count cambió entre un render y otro return ( <div> <button onClick={() => setCount(count + 1)}> Click me
  • 3. </button> </div> ); } Cuando pasamos un arreglo vacío, useEffect sólo se ejecutará una vez luego del primer render. Por último, si una función se retorna del efecto, ésta se ejecutará luego del último render una vez que el componente desaparezca de la interfaz. Continuemos.