Skip to content

Latest commit

 

History

History
71 lines (62 loc) · 1.83 KB

4.5 React com Hooks & State.md

File metadata and controls

71 lines (62 loc) · 1.83 KB

Trabalhando com Rooks & States no React

  1. Hooks
  • Funções que estão sempre associadas ao componente
  • Hooks básicos:
    • useState
    • useEffect
    • useContext
  • Hooks adicionais:
    • useReducer
    • useCallback
    • useMemo
    • useRef
    • useImperativeHandler
    • useLayoutEffect
    • useDebugValue
  1. Counter - Com e sem estado
  • Para compararmos a facilidade de um uso de hooks, criaremos um componente com e sem o uso do hook useState
  • Counter Stateless
    function Counter() {
      let quantity = 1
    
      function upQuantity() {
        quantity = quantity + 1
        document.getElementById("counter-box").innerHTML = quantity
        console.log(quantity)
      }
    
      return (
        <>
          <h1>Counter</h1>
          <h2 id="counter-box">{quantity}</h2>
          <button onClick={upQuantity}>Aumentar</button>
        </>
      )
    }
    
    export default Counter
  • Counter Statefull
    import { useState } from "react"
    
    function SmartCounter() {
      const [quantity, upQuantity] = useState(1)
    
      return (
        <>
          <h1>Smart Counter</h1>
          <h2>{quantity}</h2>
          <button onClick={() => upQuantity(quantity+1)}>Aumentar</button>
        </>
      )
    }
    
    export default SmartCounter
  • Podemos observar que o useState torna desnecessário criarmos uma função para setarmos o valor da variável quantity - o hook já nos retorna essa função
  • Podemos inserir vários useState, o que simplificaria progressivamente nosso componente
  1. Efeitos colaterais e o hook useEffect
  • useEffect - Função que indica um efeito colateral a ser executado quando um valor monitorado se altera
    useEffect(() => {
      efeitoColateral()
      return cleanup
    }, [valorMonitorado])
  • O useEffect pode ser visto como a junção dos métodos ComponentDidMount, ComponentDitUpdate e ComponentWillUnmount originais do React