Duas regras que você precisa cumprir com hooks no React

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ส.ค. 2024
  • Hooks são formas extremamente simples de adicionar comportamentos a componentes no React, mas existem algumas regras que você deve seguir quando utilizar essa API.
    Mas, para isso, temos que aprender como os hooks funcionam por baixo dos panos e entender o que são closures no JavaScript.
    Nesse vídeo mostro detalhadamente como o React se comporta quando declaramos um novo hook dentro do componente.
    -----
    Conecte-se a 200mil devs e avance para o próximo nível com a nossa plataforma: rocketseat.com...
    Cadastre-se na nossa plataforma: app.rocketseat...
    Junte-se a mais de 392mil devs em nossa comunidade no Discord: / discord
    Acompanhe a Rocketseat nas redes sociais:
    Twitter: @rocketseat
    Facebook: @rocketseat
    Instagram: @rocketseat_oficial

ความคิดเห็น • 138

  • @luanmedeirossilveira
    @luanmedeirossilveira 2 ปีที่แล้ว +54

    Fala Diego! Continua trazendo conteúdos desse porte que ajuda muito a galera. Abraço!

    • @dieegosf
      @dieegosf 2 ปีที่แล้ว +7

      Pode deixar!

  • @GabrielManussakis
    @GabrielManussakis 2 ปีที่แล้ว +22

    Esses vídeos com conceitos mais avançados são muito importantes para a comunidade!
    Parabéns!

  • @ebratz
    @ebratz 2 ปีที่แล้ว +7

    Muito bom ver a Rocketseat avançando em conteúdos com mais profundidade! Já existem muitos conteúdos para iniciantes ou nível intermediário e poucos conteúdos bons de nível avançado, principalmente em português.

  • @jon1996xd
    @jon1996xd 2 ปีที่แล้ว +4

    Vídeo pra ser visto mais de uma vez! Esses conceitos são muito importantes e acredito que todo mundo que já brincou com o react já gastou um tempo por causa desses "problemas"

  • @jailsvs
    @jailsvs 6 หลายเดือนก่อน +1

    Boa Diegão! Parabéns pelo conteúdo!

  • @renatorodrigues2774
    @renatorodrigues2774 2 ปีที่แล้ว +2

    Fala Diego, Obrigado pelo Video. Eu já sabia que não podia Usar, mais me convenci agora porque.

  • @Cristian7Bitencourt
    @Cristian7Bitencourt 2 ปีที่แล้ว +4

    Trabalho com React a um ano e não tinha parado pra pensar nisso, muito massa, clareou as ideias!!!!

  • @IgorRP12
    @IgorRP12 2 ปีที่แล้ว +3

    Excelente vídeo, acho que tão importante quanto saber usar a ferramenta, é saber como ela funciona "por de baixo dos panos" para saber também suas limitações, acho que seria interessante, talvez junto do vídeo ou em uma série separada, mostrar como tu chega a essas conclusões, seja fuçando no pacote do react ou documentação/fóruns para que a gente também possa aprender a como ....aprender?? haha mas super apoio essa série "É errando que se aprende".
    Valeu Diego, valeu Rocket!!

  • @dpisati
    @dpisati 2 ปีที่แล้ว +12

    Maravilhoso video Diego!! Mais videos assim sao muito bem-vindos! 💖
    Explicar o funcionamento da programacao de uma forma mais pura, sem frameworks (ou o que o framework faz por baixo dos panos - como esse video). E conceitos basicos, porem essenciais, como closures, recursion, recursive, curry e etc...
    Obrigado pelo conteudo! 💖💖

  • @ValterNeto
    @ValterNeto ปีที่แล้ว

    Conteúdo massa! Já caí várias vezes nesse erro e fiquei muito putaço hahahah .
    Agora eu saquei, agora entendi!
    Valew e parabéns!

  • @guilhermelourenco977
    @guilhermelourenco977 2 ปีที่แล้ว +9

    Você poderia trazer um conteúdo sobre Autenticação social + via Api na mesma aplicação abordando a melhor estratégia de se fazer isso 🚀

  • @maxwellalves6492
    @maxwellalves6492 2 ปีที่แล้ว +1

    Muito legal man, como pode fazer tanto sentido kkjkdkdkk eu gosto muito, e a função do useState, poder receber uma função com parâmetro do último estado da variável mudou minha vida kkkdkdk

  • @adrielschmitz
    @adrielschmitz 2 ปีที่แล้ว +1

    Excelente explicação!
    Se eu tivesse tido uma explicação visual assim lá nos primórdios dos hooks teria me polpado um baita tempo!!

  • @nickolassilva8994
    @nickolassilva8994 2 ปีที่แล้ว +5

    Salve Diegão!!! Massa demais esse conteudo, era um dos pontos que eu não tava entendendo... "now everything makes sense!" ||| e não é por nada, não, mas parece que, ou o filtro ta estranho ou o Diegão não dormiu direito kkkkkk Salve equipe da rockets, Abraço!

  • @raimundojunior8547
    @raimundojunior8547 2 ปีที่แล้ว +1

    Valeu Diego, estava com dificuldade de entender no ignite, por aqui você esclareceu tudo, obrigado mesmo pela ajuda

  • @fabiogoncalves8597
    @fabiogoncalves8597 8 หลายเดือนก่อน

    Excelente vídeo, conteúdo extremamente relevante. Estou acostumado a usar o Vue.js e, ao alterar uma variável dentro de uma função, na sequência eu já consigo fazer uma operação com o valor atualizado. Demorei pra perceber que no React o funcionamento é diferente e o seu vídeo explicou muito bem o porquê. Sensacional!

  • @rafacapoci1757
    @rafacapoci1757 2 ปีที่แล้ว +2

    Estava com esse "problema" a umas duas semanas, esse video teria me poupado muito tempo hahaha

  • @Pedrooedrpziul
    @Pedrooedrpziul 2 ปีที่แล้ว +1

    Conteúdo Fenomenal !!!!

  • @vane_8994
    @vane_8994 2 ปีที่แล้ว +1

    Baita conteúdo! 🚀👏

  • @devemprender
    @devemprender 2 ปีที่แล้ว +2

    Gosto de sempre usar Call back function no useState quando estou utilizando o valor antigo. Esse problema pode acontecer tb quando estamos tratando um valor async tb.

  • @davidrocky
    @davidrocky 6 หลายเดือนก่อน

    Esses vídeos de conceitos de base do react são essenciais!

  • @0625010042
    @0625010042 2 ปีที่แล้ว +1

    Show de bola! Conteúdo de muita qualidade. Parabéns Diego!!!

  • @JeanSilvany_
    @JeanSilvany_ 2 ปีที่แล้ว

    Tomei martelada o vídeo todo, mas esse final aí fez um milagre!
    Boa Diogão!!!

  • @jennifermagpantay7933
    @jennifermagpantay7933 2 ปีที่แล้ว

    Incríveeeeeel!! Por mais conteúdos assim, por favor! Faz a gente, que está aprendendo, entender melhor alguns comportamentos, erros e as formas de evitá-los!

  • @edvaldojose.7756
    @edvaldojose.7756 ปีที่แล้ว

    Cara isso e D+, muito bom meu velho, excelente conteudo.

  • @BlackListRF
    @BlackListRF 2 ปีที่แล้ว +1

    Conteúdo top ein Diegão, e esse teclado ein, já faz uns meses que ta nessa kkkkk

    • @dieegosf
      @dieegosf 2 ปีที่แล้ว

      Consegui resolver essa semana! (não da forma que eu queria, se é que me entendes hehe)

  • @jonatasrosamoura9666
    @jonatasrosamoura9666 8 หลายเดือนก่อน

    Muito bom, já sofri a lot por causa desses erros de hooks do react kkkk

  • @jonatascarvalhoborges6175
    @jonatascarvalhoborges6175 2 ปีที่แล้ว +1

    Ganhou meu "laique" nos incas e astecas hahahaha

  • @ygorthiagof
    @ygorthiagof 2 ปีที่แล้ว +2

    Esse formato é muito daora!! Excelente vídeo

  • @VitorAdonaicps
    @VitorAdonaicps 2 ปีที่แล้ว +2

    Rapaz, acabei de salvar o vídeo "3 coisas que você precisa dominar pra aprender React", agora eu chego aqui e saiu o "Duas regras que você precisa cumprir com hooks no React".
    Acho que é o destino falando pra eu focar mais no React Native, Web eu ainda prefiro 1000x o VueJS.

  • @diego_maia
    @diego_maia 2 ปีที่แล้ว

    Dois videos em seguida explicando alguma coisa que eu achava que sabia mas na verdade nao sabia!!! Continua com esse tipo de conteudo Diego!!! Valeu mesmo!!

    • @dieegosf
      @dieegosf 2 ปีที่แล้ว

      Que bom que curtiu!

  • @lucasmedeiros391
    @lucasmedeiros391 2 ปีที่แล้ว

    Top demais Diegão!

  • @ruanlandrade
    @ruanlandrade 2 ปีที่แล้ว +1

    Amei o batom e o conteúdo, continua Diegão kkkkk

    • @dieegosf
      @dieegosf 2 ปีที่แล้ว +1

      Que bom que gostou, está na minha paleta :)

  • @luizfelipeop
    @luizfelipeop 2 ปีที่แล้ว

    Dahora, ja conhecia mas passei por isso ontem haha, pra setar valores dentro de um objeto, dai fiquei uns minutos e lembrei dessa questão e consegui resolver o problema, coisas de Dev Junior haha mt top o video

  • @darlonhenrisouza8555
    @darlonhenrisouza8555 2 ปีที่แล้ว

    excelente aula diegão

  • @felipecabreira4321
    @felipecabreira4321 2 ปีที่แล้ว +1

    Ótima didatica, video muito bom !

  • @gustadev276
    @gustadev276 2 ปีที่แล้ว +1

    Vídeo muito bom, sempre bem Diego!🚀

  • @vitorsantana2795
    @vitorsantana2795 ปีที่แล้ว

    Sensacional Diego!! Explicação super didática e fácil 👏🏾

  • @CaiqueMoraes93
    @CaiqueMoraes93 2 ปีที่แล้ว +2

    Excelente vídeo Diego! Gosto muito do seu conteúdo e didática

  • @yagojuan4041
    @yagojuan4041 2 ปีที่แล้ว

    Meu cérebro explodiu agora hahaha. Sabia que ele não deixava fazer isso, mas não sabia o porquê. Muito bom!!

  • @afonsocarvalho3124
    @afonsocarvalho3124 2 ปีที่แล้ว +3

    Então, quando vc faz uso de um componente, apesar de ele já ser escrito como se fosse uma função, ele será transformado em uma outra função no bundle.js, que receberá como argumentos as variáveis do seu componente, inclusive as funções, que serão, naturalmente, um callback (ou delegate como faziam os incas e astecas xD ). VAleu, Diego!

  • @adrianomedeiros4068
    @adrianomedeiros4068 2 ปีที่แล้ว

    Cara eu estava passando nesse problema do setState igualzinho e não estava entendendo... Muito obrigado

  • @pablopereira5893
    @pablopereira5893 2 ปีที่แล้ว

    não passei por esses problemas ainda, mas é bom ja saber de antemão... vlw... belo video.... "Hey marcas de teclado!! Esse homem precisa de um teclado novo!"

  • @rmscrisostomo
    @rmscrisostomo 2 ปีที่แล้ว

    Caí hoje, descobri neste vídeo o porque 😂😂✌️.
    Obrigado pelo conteúdo.

  • @SirCristianoLopes
    @SirCristianoLopes ปีที่แล้ว

    Sensacional, Diego, parabéns pelo conteúdo.

  • @thiagonunesmiziara6866
    @thiagonunesmiziara6866 2 ปีที่แล้ว +1

    Muito bom poderia fazer um de zustand

  • @rodrig0krvalho
    @rodrig0krvalho 2 ปีที่แล้ว +1

    Muito show!

  • @michaelbarbosa7893
    @michaelbarbosa7893 2 ปีที่แล้ว

    When I've started producing I personally have downloaded most of the plugins from there, never had problems with virus, malwares and

  • @Viiikto
    @Viiikto 2 ปีที่แล้ว +2

    Sensacional, adorei o lip tint

  • @lukscsas
    @lukscsas 2 ปีที่แล้ว

    mano, esse video E X P L O D I U minha mente... parabens!

  • @johnrodrigues559
    @johnrodrigues559 2 ปีที่แล้ว +1

    Muito bom, Brabissimo

  • @MDKohaku
    @MDKohaku 2 ปีที่แล้ว +1

    A Rocketseat salvando dnv

  • @italofsan
    @italofsan ปีที่แล้ว

    Excelente vídeo!

  •  2 ปีที่แล้ว +1

    Muito bom!

  • @brenodias6323
    @brenodias6323 2 ปีที่แล้ว

    Thank You So Much Bud

  • @weslleyfillipe1532
    @weslleyfillipe1532 ปีที่แล้ว

    Uma coisa sobre hooks condicionais que eu nao entendo é tipo, por exemplo:
    quando eu uso o graphql no front com react, eu nao posso fazer a chamada do 'useQuery' dentro de um if.
    A minha ideia na epoca era criar um unico hook personalizavel que executasse uma query de acordo com o parametro que vinha, porem como eu nao podia colocar dentro de um if ou switch case, acabava tendo que criar um hook pra cada funçao.
    No exemplo do video, mostrou no caso do hook nao ser criado numa segunda renderizacao (qd for false), porem no meu exemplo, um useQuery sempre seria criado, mas o ESLINT nao me deixava fazer kk. De qualquer forma, optei por nao usar graphql no front pra evitar esse tipo de coisa

  • @albuquerquedev5200
    @albuquerquedev5200 2 ปีที่แล้ว +1

    Show!

  • @gabshs_
    @gabshs_ 2 ปีที่แล้ว

    Fala Diego, beleza? Conteúdo incrível, parabéns pela altíssima qualidade sempre. Teria como trazer mais vídeos voltados a node nesse estilo? Sinto a carência de conteúdos em node também. Abraços!

  • @fellipeemanoel3040
    @fellipeemanoel3040 2 ปีที่แล้ว +1

    Video curtinho mas recheado de conteúdo!! Showww

  • @marlonlamancio
    @marlonlamancio ปีที่แล้ว

    Como sempre excelente conteúdo! Obrigado! Só uma sugestão, a música de fundo está muito alta nos vídeos, distrai bastante

  • @felipekawassaki
    @felipekawassaki 2 ปีที่แล้ว +1

    Top!

  • @busster_6611
    @busster_6611 2 ปีที่แล้ว

    You are dope bro! Damn , thank you so much, subbed

  • @pliniohavila
    @pliniohavila 2 ปีที่แล้ว +3

    Boa!
    Agora, eu sei que para modificar o valor do estado mais de uma vez, eu tenho que alterar mediante a seguinte função:
    steCount((count) => count + 1).
    Porém não entendo o que está acontecendo "debaixo dos panos"?
    Poderia fazer uma vídeo explicando?
    Muito Obrigado.
    Parabéns pelo conteúdo...

    • @PedroHenrique-je6yu
      @PedroHenrique-je6yu 11 หลายเดือนก่อน +1

      mano, pelo o que eu entendi no vídeo, ele executa uma função. Assim como caso você passasse apena setCount(count + 1), onde count é um valor fixo, a função se executará setCount(state => state + 1), onde state é sempre o valor anterior.

  • @danilovieira4442
    @danilovieira4442 2 ปีที่แล้ว

    13:11
    Quando o cara sabe como aproveitar os limões da vida hahaha

  • @moranisdev
    @moranisdev 2 ปีที่แล้ว +1

    Brabo !!!

  • @gabrieldurr3037
    @gabrieldurr3037 2 ปีที่แล้ว

    excelente 👏👏

  • @wagnersobreira8703
    @wagnersobreira8703 2 ปีที่แล้ว +1

    Boa diego!

  • @Samuellucas243
    @Samuellucas243 2 ปีที่แล้ว

    Como voce e tao bom diego? Em sabedoria.

    • @dieegosf
      @dieegosf 2 ปีที่แล้ว

      Foco e profundidade, como falei no meu instagram pessoal nessa foto (instagram.com/p/CgxSjNKObC5/), eu sei menos coisas hoje do que sabiam 6-7 anos atrás.

    • @Samuellucas243
      @Samuellucas243 2 ปีที่แล้ว

      Link esta indisponivel..

  • @victorkihs4415
    @victorkihs4415 2 ปีที่แล้ว

    Thanks so much bro.

  • @RicardoTrevisan
    @RicardoTrevisan 2 ปีที่แล้ว +1

    🚀🔥🔥🔥

  • @brenodanyel1315
    @brenodanyel1315 2 ปีที่แล้ว +1

    Muito bom :)

  • @marcelolupatini5553
    @marcelolupatini5553 2 ปีที่แล้ว +1

    Vídeo bom

  • @MarcusVinicius-wz6es
    @MarcusVinicius-wz6es 2 ปีที่แล้ว +3

    Fala Diegão! Poderia falar sobre o erro: "Can't perform a React state update on an unmounted component", por favor!!!!! Adoro o conteúdo da Rocket!

  • @gleisonrj19
    @gleisonrj19 2 ปีที่แล้ว +1

    Descobri quando precisei fazer uma paginação e tive que pegar o prevState kk

  • @giovanny1850
    @giovanny1850 2 ปีที่แล้ว

    "ou classes como faziam os incas e astecas" me quebrou mt mano KKKKKKKKK

  • @renatomarxs
    @renatomarxs 2 ปีที่แล้ว +1

    Top

  • @FAELP22
    @FAELP22 11 หลายเดือนก่อน

    Legal a dica, tenho uma pergunta, como vc faz para colocar sua câmera na tela?

  • @saphiraxavier426
    @saphiraxavier426 ปีที่แล้ว

    me ajudou muitoo

  • @rodrigomartins9115
    @rodrigomartins9115 2 ปีที่แล้ว

    Opa, quais sao as configurações de ESLINT e Prettier você usa?

  • @EduuuardoRodrigues
    @EduuuardoRodrigues 2 ปีที่แล้ว

    bro where have u been, it is so cool

  • @223brunoleo
    @223brunoleo 2 ปีที่แล้ว +1

    Fantástico! Como acho isso na documentação?

    • @dieegosf
      @dieegosf 2 ปีที่แล้ว

      pt-br.reactjs.org/docs/hooks-rules.html#explanation

  • @thomaspalmieri3754
    @thomaspalmieri3754 2 ปีที่แล้ว

    it really works!

  • @cirogomes5330
    @cirogomes5330 2 ปีที่แล้ว +3

    Dá pra dar um setCount e logo em seguida já usar o valor atualizado de alguma forma, sem precisar salvar esse valor numa variável?
    Por exemplo esse código:
    const newCount = count + 1;
    setCount(newCount);
    setCrazyState(newCount * 2);
    Seria possível fazer assim?
    setCount(count + 1);
    setCrazyState(count * 2); //com o count atualizado

    • @cirogomes5330
      @cirogomes5330 2 ปีที่แล้ว +2

      Respondendo minha própria pergunta, dá pra fazer algo tipo assim 🤔:
      setCount(count => {
      count++;
      setCrazyState(count * 2);
      return count;
      });

  • @MatheusPereira-nn9dj
    @MatheusPereira-nn9dj ปีที่แล้ว

    o que voce esta usando no tsconfig para voce nao precisar definir tipos na sua aplicação react ???

  • @caiomachado2666
    @caiomachado2666 2 ปีที่แล้ว

    Diego, no último exemplo que você faz a referência do state, nesse caso ele só renderiza o componente uma vez ou 5? Tipo, ele espera a função concluir todas as linhas pra dai triggar o rerender ou ele vai triggar 5 vezes porque chamou o setState 5 vezes? Obs: Isso que estou falando é independente se o valor alterou 5 vezes ou não.

    • @dieegosf
      @dieegosf 2 ปีที่แล้ว +1

      Ele faz uma vez só, isso se chama Automatic Batching que sempre foi feito sozinho e na última versão do React temos o batching também funcionando dentro de código assíncrono (reactjs.org/blog/2022/03/29/react-v18.html#new-feature-automatic-batching).

  • @joaocastro.s
    @joaocastro.s 2 ปีที่แล้ว

    O condicional ainda ficou confuso pra mim o motivo, mas o state na function deu pra entender bacanudo.

    • @dieegosf
      @dieegosf 2 ปีที่แล้ว

      O condicional acaba mudando a ordem dos states e com isso a "ordem dos parâmetros" da função, como o React não guarda um nome pra cada estado, ele se perde.

    • @joaocastro.s
      @joaocastro.s 2 ปีที่แล้ว

      Acabei voltando o vídeo para entender melhor e ficou super claro. Parabéns pelo conteúdo Diego.

  • @jeffersonbueno1168
    @jeffersonbueno1168 2 ปีที่แล้ว

    foda, sabia que não funcionava mas não sabia o porque rs

  • @alexalannunes
    @alexalannunes 2 ปีที่แล้ว +1

    testei e com useCallback tambem não funciona. :) .Entendido com sucesso

  • @victorpagnozi4736
    @victorpagnozi4736 2 ปีที่แล้ว

    Fala Diego, qual o modelo de câmera que vc utiliza ?

  • @ernestoneto9166
    @ernestoneto9166 ปีที่แล้ว

    Muito interessante isso, foi bom aprender antes de tentar fazer isso kkkkkkkkkkk

  • @uamhenry522
    @uamhenry522 ปีที่แล้ว

    What do I do when the channel rack becos too cluttered? If I can, how do I clear it?

  • @marcelosilvadias3902
    @marcelosilvadias3902 2 ปีที่แล้ว +2

    O famoso "prevState" rs .

  • @pauloreis6195
    @pauloreis6195 2 ปีที่แล้ว

    top

  • @xxxx3657
    @xxxx3657 2 ปีที่แล้ว

    Best guy how did u get it, what torrent did u use

  • @compilacaodememesnovos8353
    @compilacaodememesnovos8353 2 ปีที่แล้ว

    I'm convinced that the big investors and analysts are trying to scare us to keep us poor and ignorant to the market.. because its steady

  • @sosun847
    @sosun847 2 ปีที่แล้ว

    teria alguma referencia para aprofundar nessa questão? Entendo que foi um exemplo simplificado mas se o problema fosse a ordem que as propriedades são passadas e o time do react quisesse permitir hooks condicionais os componentes poderiam receber seus "params e hooks" como um objeto, ai não importaria se um desses valores não fosse enviado, ou de alguma forma contar o numero de params que ele espera e preencher com undefined caso o parametro não tivesse valor definido

    • @dieegosf
      @dieegosf 2 ปีที่แล้ว +1

      A referência é a própria documentação: pt-br.reactjs.org/docs/hooks-rules.html#explanation

  • @joaovictordossantos9329
    @joaovictordossantos9329 2 ปีที่แล้ว

    Seria interessante deixar alguns fontes na descrição, senti falta

    • @dieegosf
      @dieegosf 2 ปีที่แล้ว +1

      A fonte é sempre a documentação pt-br.reactjs.org/docs/hooks-rules.html#explanation

  • @crazybr9630
    @crazybr9630 2 ปีที่แล้ว

    Does it support for windows 10?

  • @ruthmariia
    @ruthmariia 2 ปีที่แล้ว +1

    Ótima explicação! Mas essa música de fundo me atrapalhou um pouco, era melhor quando vocês não colocavam música de fundo nos vídeos.

    • @dieegosf
      @dieegosf 2 ปีที่แล้ว

      Obrigado pelo feedback

    • @guilherme-ji8ly
      @guilherme-ji8ly 2 ปีที่แล้ว

      eu nem percebi a música de fundo sinceramente

  • @andresdosantos5310
    @andresdosantos5310 2 ปีที่แล้ว +1

    Vi isso no Ignite