Engánchate a los
React Hooks


Engánchate a los
React Hooks



Miguel Ángel Durán
@midudev
youtube/c/midudev


Engánchate a los
React Hooks


soy
Enabler Frontend en



...
Engánchate a los
React Hooks



Engánchate a los
React Hooks


1. ¿Qué son los React Hooks?
2. ¿Por qué molan tanto?
3. Show me the code!
4. Preguntas y... ¡nos vamos a comer!
🤔↩️
🤩
👨💻
🙋♀️
Engánchate a los
React Hooks


1. ¿Qué son los React Hooks?

Engánchate a los
React Hooks


✅
react >= 16.8.0
1. ¿Qué son los React Hooks?

Engánchate a los
React Hooks


↩️
funciones que nos permiten acceder a todas casi todas las características de React desde componentes funcionales
1. ¿Qué son los React Hooks?

Engánchate a los
React Hooks


1. ¿Qué son los React Hooks?

y no sólo state! 🤪
Engánchate a los
React Hooks


1. ¿Qué son los React Hooks?
useState useEffect useContext
Básicos ⭐
useReducer
useCallback
useMemo
useRef
useImperativeHandle
useLayoutEffect
useDebugValue
🛒 Adicionales
Engánchate a los
React Hooks


1. ¿Qué son los React Hooks?
casi todas las funcionalidades
getSnapshotBeforeUpdate componentDidCatch

Engánchate a los
React Hooks


1. ¿Qué son los React Hooks?
¿Y cómo se usan?
import React, { Component } from "react";
export default class Counter extends Component {
state = { counter: 0 }
render() {
const { counter } = this.state
return (
<div>
<span>{counter}</span>
<button
onClick={() => this.setState({ counter: counter + 1 })}
>
+
</button>
<button
onClick={() => this.setState({ counter: counter - 1 })}
>
-
</button>
</div>
);
}
}

import React, { useState } from 'react'
export default function Counter () {
const [counter, setCount] = useState(0)
return (
<div>
<span>{counter}</span>
<button onClick={() => setCount(counter + 1)}>+</button>
<button onClick={() => setCount(counter - 1)}>-</button>
</div>
)
}


import React, { Component } from "react";
export default class Counter extends Component {
state = { counter: 0 }
render() {
const { counter } = this.state
return (
<div>
<span>{counter}</span>
<button
onClick={() => this.setState({ counter: counter + 1 })}
>
+
</button>
<button
onClick={() => this.setState({ counter: counter - 1 })}
>
-
</button>
</div>
);
}
}
import React, { useState } from 'react'
export default function Counter () {
const [counter, setCount] = useState(0)
return (
<div>
<span>{counter}</span>
<button onClick={() => setCount(counter + 1)}>+</button>
<button onClick={() => setCount(counter - 1)}>-</button>
</div>
)
}




¿No te parecen suficientes hooks?
useState useEffect useContext
Básicos ⭐
useReducer
useCallback
useMemo
useRef
useImperativeHandle
useLayoutEffect
useDebugValue
🛒 Adicionales

Custom Hooks
crea tu propio hook

Engánchate a los
React Hooks


2. ¿Por qué molan tanto?
Engánchate a los
React Hooks


100% retrocompatibles
2. ¿Por qué molan tanto?

Engánchate a los
React Hooks


transpilan mejor que las clases
2. ¿Por qué molan tanto?
import React, { Component } from "react";
export default class Counter extends Component {
state = { counter: 0 }
render() {
const { counter } = this.state
return (
<div>
<span>{counter}</span>
<button
onClick={() => this.setState({ counter: counter + 1 })}
>
+
</button>
<button
onClick={() => this.setState({ counter: counter - 1 })}
>
-
</button>
</div>
);
}
}
import React, { useState } from 'react'
export default function Counter () {
const [counter, setCount] = useState(0)
return (
<div>
<span>{counter}</span>
<button onClick={() => setCount(counter + 1)}>+</button>
<button onClick={() => setCount(counter - 1)}>-</button>
</div>
)
}

Engánchate a los
React Hooks


2. ¿Por qué molan tanto?

Engánchate a los
React Hooks


mejor separación de conceptos
2. ¿Por qué molan tanto?
Engánchate a los
React Hooks


2. ¿Por qué molan tanto?


Engánchate a los
React Hooks


2. ¿Por qué molan tanto?
Engánchate a los
React Hooks


reutilización de la lógica
2. ¿Por qué molan tanto?

useYourImagination()
function useInputValue(initialValue) {
let [value, setValue] = useState(initialValue);
let onChange = useCallback(function(event) {
setValue(event.currentTarget.value);
}, []);
return {
value,
onChange,
};
}
Engánchate a los
React Hooks


3. Show me the code!

Engánchate a los
React Hooks


3. SHOW ME THE CODE
useState()
Engánchate a los
React Hooks


3. SHOW ME THE CODE
useEffect + customHook
Engánchate a los
React Hooks


3. SHOW ME THE CODE
useEffect + customHook
Engánchate a los
React Hooks


3. SHOW ME THE CODE
useContext()
Engánchate a los
React Hooks


3. SHOW ME THE CODE
useReducer()
Engánchate a los
React Hooks


¡Antes de irnos!
Una cosa más...


Engánchate a los
React Hooks



LOS MANDAMIENTOS DE LOS HOOKS
Engánchate a los
React Hooks



Sólo llama a los hooks en la raíz del componente funcional
Engánchate a los
React Hooks


function Form ({name}) {
// 🔴 ESTO ESTÁ MAL!
if (name !== '') {
useEffect(function persistForm() {
localStorage.setItem('formData', name)
})
}
// 👍 esto sí que le mola!
useEffect(function persistForm() {
if (name !== '') {
localStorage.setItem('formData', name)
}
})
//..
}
Engánchate a los
React Hooks


4. Preguntas y... ¡nos vamos a comer!
youtube/c/midudev

Engánchate a los
React Hooks


4. Preguntas y... ¡nos vamos a comer!
🔗 midu.dev
Engánchate a los
React Hooks


4. Preguntas y... ¡nos vamos a comer!
@midudev
youtube/c/midudev


Engánchate a los React Hooks
By Miguel Angel Durán García
Engánchate a los React Hooks
- 575