¡Bienvenida! Este es un curso especial de React Hooks

1

¿Qué aprenderás en el Curso Profesional de React Hooks?

2

¿Qué son los React Hooks y cómo cambian el desarrollo con React?

Introducción a React Hooks

3

useState: estado en componentes creados como funciones

4

useEffect: olvida el ciclo de vida, ahora piensa en efectos

5

useContext: la fusión de React Hooks y React Context

6

useReducer: como useState, pero más escalable

7

¿Qué es memoization? Programación funcional en JavaScript

8

useMemo: evita cálculos innecesarios en componentes

9

useRef: manejo profesional de inputs y formularios

10

useCallback: evita cálculos innecesarios en funciones

11

Optimización de componentes en React con React.memo

12

Custom hooks: abstracción en la lógica de tus componentes

13

Third Party Custom Hooks de Redux y React Router

Configura un entorno de desarrollo profesional

14

Proyecto: análisis y retos de Platzi Conf Store

15

Git Hooks con Husky

16

Instalación de Webpack y Babel: presets, plugins y loaders

17

Configuración de Webpack 5 y webpack-dev-server

18

Configuración de Webpack 5 con loaders y estilos

19

Loaders de Webpack para Preprocesadores CSS

20

Flujo de desarrollo seguro y consistente con ESLint y Prettier

Estructura y creación de componentes para Platzi Conf Store

21

Arquitectura de vistas y componentes con React Router DOM

22

Maquetación y estilos del home

23

Maquetación y estilos de la lista de productos

24

Maquetación y estilos del formulario de checkout

25

Maquetación y estilos de la información del usuario

26

Maquetación y estilos del flujo de pago

27

Integración de íconos y conexión con React Router

Integración de React Hooks en Platzi Conf Merch

28

Creando nuestro primer custom hook

29

Implementando useContext en Platzi Conf Merch

30

useContext en la página de checkout

31

useRef en la página de checkout

32

Integrando third party custom hooks en Platzi Conf Merch

Configura mapas y pagos con PayPal y Google Maps

33

Paso a paso para conectar tu aplicación con la API de PayPal

34

Integración de pagos con la API de PayPal

35

Completando la integración de pagos con la API de PayPal

36

Paso a paso para conectar tu aplicación con la API de Google Maps

37

Integración de Google Maps en el mapa de checkout

38

Creando un Custom Hook para Google Maps

Estrategias de deployment profesional

39

Continuous integration y continuous delivery con GitHub Actions

40

Compra del dominio y despliega con Cloudflare

Optimización de aplicaciones web con React

41

Integración de React Helmet para mejorar el SEO con meta etiquetas

42

Análisis de performance con Google Lighthouse

43

Convierte tu aplicación de React en PWA

Bonus: trabaja con Strapi CMS para crear tu propia API

44

Crea una API con Strapi CMS y consúmela con React.js

¿Qué sigue en tu carrera profesional?

45

Próximos pasos para especializarte en frontend

Curso Profesional de React Hooks

Curso Profesional de React Hooks

Juan David Castro Gallego

Juan David Castro Gallego

¿Qué es memoization? Programación funcional en JavaScript

7/45

Lectura

Memoization es una técnica útil para evitar cálculos innecesarios en nuestro código. Guardamos el resultado de nuestros cálculos cada vez que los hacemos para no tener que repetirlos en el futuro. En otras palabras, estamos ahorrando grandes cantidades de tiempo a cambio de “mucho” espacio de almacenamiento.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 37

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hacen falta mas de estos textos para explicar la teoria antes del video práctico. Si con un video no se logra transmitir claramente la idea.

Que gran articulo, todo muy bien explicado y redactado, ¡¡ Gracias !!

Excelente artículo C: quizá me equivoco pero creo que la condicional debería ser:

if (n === 1 || n === 0) {
	return n;
}

En lugar de retornar ‘1’ en ambos casos, retornamos ‘n’. Lo cual podría quedar también como:

if (n <= 1) {
	return n;
}

El código final quedaría:

let memo = []

var fibonacci = function(n) {
    if (n <= 1) {
	return n;
    } else if (!memo[n]) {
	memo[n] = fibonacci(n - 1) + fibonacci(n - 2);
    }  

   return memo[n];
}

Porque la secuencia es:
Fib(1) = 1
Fib(2) = 1
Fib(3) = 2
https://es.wikipedia.org/wiki/Sucesi%C3%B3n_de_Fibonacci
Buen día 💚

No implementes memoización en llamados a una API o para trabajar con fechas y horas en JavaScript.

Esto es programación dinámica?

buenisimo el aporte, no se me habia ocurrido realizar de esa forma un fibo. interesante!

Qué excelente! Hoy entendí mejor éste tema de Memoización. De hecho quiero agregar que si alguien no entiende bien, coloque un **debugger** para que pueda seguir un paso a paso de lo que se realiza. Abren herramienta para desarrolladores, van al Tab de Sources y ahí le dan " click a Step into next function call " para ver paso a paso.
Pueden ver como el stack se va llenando de las funciones de fibonacci y así verán bien todo

Brillante!

En 3 meses de platzi por mucho Juan David Castro es el profe mas comprometido que he visto, siempre con grandes aportes y una excelente actitud.
Gran articulo

este es el tipo de contenido por el que pago platzi

Por si fuera poco, aprendi teoria acerca de programacion funcional
Muchas gracias

Excelente articulo! Muy buena explicación y super útil!!

Excelente articulo, muy bien explicado, me recordó a las clases de estructura de datos de la universidad

Excelente

Excelente la forma de ahorrar recursos (procesos), cuando son repetitivos. Aunque se debe tener en cuenta, en algunos casos, la cantidad de memoria que se necesite para guardar los resultados de ciertos procesos.

Muchas Gracias, gran aporte 😄

Muy enriquecedor! ⭐⭐⭐⭐⭐

Excelente aporte

Excelente articulo, muchas gracias.

Wow!!
Excelente articulo para tener en cuenta.

Wow!! Excelente explicación

No sé si a alguien más le pasa, pero a mí el contraste de las letras con el color de fondo me molesta para leer.

Que buena técnica, efectivamente va a ayudar a gestionar mejor los recursos

Les recomiendo este video en donde habla acerca de la programación dinámica y donde se usa la memoización

Me costó entenderlo, así que espero ayudar a entender más fácil memoization:

En memo estamos guardando hasta el número que hemos llegado, Ej: Cuando pasamos memoFactorial(5) hacemos
5x4x3x2 = 120; la variable memo guarda los resultados por partes de la siguiente forma:
//Recordemos que 1 no lo guarda porque toda multiplicación x1 da el mismo resultado
2 = 2
3 = 6 //Multiplica 3 por el resultado anterior
4 = 24 //Multiplica 4 por el resultado anterior
5 = 120 // Multiplica 5 por el resultado anterior

Es decir aunque hagamos memoFactorial(10)
la función ya no tendrá que hacer 5x4x3x2 siempre será igual a 120 simplemente hará 10x9x8x7x6 y el resultado lo multiplicará por el resultado del número 5, para este caso
120

Que pasa si en vez de guardar el ultimo resultado anterior guardamos los ultimos 10 y al ejecutar buscamos el numero mas cercano para continuar desde ahi, o si vemos ejemplo que siempre se usa el 10, que en el valor por default del memo sea el restulado de 10

Este es un artículo muy completo.

Muchas gracias. Buena explicación

Excelente!!!

se entiende la idea ahora veamos la practica.

Gracias

¡Excelente artículo! No entendía mucho sobre memoization, muy buena explicación ¡Gracias!

Excelente!, no conocía este termino, me muestra lo mucho que me falta por aprender, para programar usando las mejores practicas y técnicas.

Excelente Aporte !

Genial Articulo!

muy completo ⭐⭐⭐⭐

No entendí del todo 😦