O ERRO mais comum no React (você já fez isso)

Поделиться
HTML-код
  • Опубликовано: 31 июл 2022
  • Um dos erros mais comuns no React (e você provavelmente já cometeu também) é a criação de estados derivados, que são estados criados a partir de outra informação já presente no componente.
    Esses estados acabam causando renderizações desnecessárias, que podem ser substituídos facilmente por variáveis calculadas em tempo de execução.
    Nesse vídeo eu coloco a mão na massa pra te mostrar como identificar os problemas e corrigi-los.
    Bora codar?
    -----
    Conecte-se a 200mil devs e avance para o próximo nível com a nossa plataforma: rocketseat.com.br/
    Cadastre-se na nossa plataforma: app.rocketseat.com.br/signup
    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

Комментарии • 413

  • @JavaxTv
    @JavaxTv Год назад +315

    Diego do céu, eu passei EXATAMENTE por isso hoje, e tomei a direção de ir pra uma variável normal, fui questionado e eu mesmo fiquei me questionado se era assim mesmo que deveria resolver. Esse vídeo caiu como uma luva... cara que coincidência maluca haha obrigado por esclarecer, já posso deitar mais tranquilo no travesseiro e mostrar isso pro pessoal que questionou tb :D

    • @dieegosf
      @dieegosf Год назад +28

      Bahh, que massa saber que o vídeo te ajudou, fico feliz demais! Bora pra cima 🚀

    • @Cookieukw
      @Cookieukw Год назад

      eu n precisei disso mas tbm notei q dava pra ussr variáveis comuns sem ser estados. inclusive dá pra usar classes tbm

  • @marcelolupatini5553
    @marcelolupatini5553 Год назад +130

    Eu tava com sdd de um vídeo mais assim aqui no canal da Rocket. Curto, pra passar conteúdo indo direto ao ponto e sem ser pra dizer "Se quiser se aprofundar, faça nosso programa pago". Eu já estava ficando saturado de marketing (e olha que sou aluno). Então, é bom ver um vídeo da Rocket assim xD

    • @myguelangello8563
      @myguelangello8563 Год назад +5

      Com certeza, gostei demais desse conteúdo com esse formato, é sempre bom variar

    • @rdgomt
      @rdgomt Год назад +1

      Concordo

  • @braddoidao8818
    @braddoidao8818 Год назад +12

    Que saudade de vídeos mais curtos com um conteúdo top. Valeu Diegão, e aparece mais vezes com videos feras assim!

  • @pauloreis6195
    @pauloreis6195 Год назад +1

    Vídeo muito top Diego, parabéns. Traz mais vídeos nesse estilo mão na massa pfv, ajuda muitooo

  • @jvmachado1204
    @jvmachado1204 Год назад +15

    O pior do derived state é quando ele dá sinais falsos na UI. Um exemplo seria se essa lista de repositórios aí tivesse um coraçãozinho do lado pro usuário dar like.
    O like dado na listra filtrada não apareceria quando o usuário apagasse o filtro (e vice-versa), já que seriam essencialmente duas listas diferentes que só parecem ser iguais.
    Isso dá maior xabu.

    • @juserrrrr
      @juserrrrr Год назад

      Oq seria melhor então?

    • @dieegosf
      @dieegosf Год назад +3

      Boa, faz total sentido!

  • @_rubenscjr
    @_rubenscjr Год назад +1

    Sensacional! Acho que acabei de passar por esse problema, e creio que esse vídeo veio em um ótimo momento, porque agora com ideia funcionando como foi planejada posso olhar essas questões de performance e ajustar erros que antes desconhecia.

  • @gabriellennon8959
    @gabriellennon8959 Год назад +2

    Que sensacional esse vídeo, isso acontece muito e já me deparei várias vezes nesse cenário. Valeu demais pelo vídeo Diegao e rocket 🔥🚀

  • @williamroger9375
    @williamroger9375 Год назад +2

    Excelente e muito necessário esse vídeo, adorei essas dicas, confesso que eu iria fazer esse filtro exatamente da primeira forma como foi implementado, e acharia normal as duas renderizações, mas com essas dicas eu já não vou mais cometer esses erros bobos.
    Valeu Diegão!

  • @ChristianFerraz
    @ChristianFerraz Год назад +32

    O ignite 2022 está bem melhor que o anterior. Estou aprendendo muito, parabéns!!!

    • @franciscomenezes6970
      @franciscomenezes6970 Год назад +1

      Ta menos complexa as explicaçoes aprendendo entendendo muito mais.. quase terminando o modulo2

    • @user-zv6vl6ne9z
      @user-zv6vl6ne9z Год назад +5

      Vou comprar assim que possivel.
      Tenho entrevista amanha, se tudo der certo kkkk eu compro ainda esse ano.

    • @nikegamer2779
      @nikegamer2779 Год назад +1

      @@user-zv6vl6ne9z boa sorte man 🙌

    •  Год назад

      fiz o ignite 2020 e gostei bastante

    • @user-zv6vl6ne9z
      @user-zv6vl6ne9z Год назад

      @@nikegamer2779 vlw mano.

  • @arnaldoquagliato8840
    @arnaldoquagliato8840 Год назад +1

    Top, curte esse formato. Continue trazendo, rápido e bem informativo.

  • @fabiosousa8678
    @fabiosousa8678 Год назад +1

    Fala Diego! Dica fantastática, esse tipo de conteúdo é muito valioso para todos nós, muito obrigado pela sua dedicação em compartilhar conosco! Grande abranço.

  • @devtechenews
    @devtechenews Год назад +1

    Fala Diego!
    Cara, estava tentando melhorar um desempenho de uma página que estava fazendo requisição demais.
    E abri o RUclips, e me deparo com essa solução de cara. Sensacional!
    Parabéns pelo ótimo conteúdo, como sempre!

  • @TheSostenesg7
    @TheSostenesg7 Год назад +28

    A dica é top, mas seria o ideal usar o useMemo, com o search como dependência, para armazenar a lista filtrada. Sei que nesse exemplo o componente é só a lista com o filtro em si, mas se fosse um componente com mais algum outro state, se esse outro state mudasse, o filter seria recalculado à cada renderização, sem necessidade.

    • @dieegosf
      @dieegosf Год назад +9

      Claro, tem muita coisa que pode ser melhor no código, o ponto era focar no estado derivado mesmo 😊 Obrigado pelo comentário!

    • @drgabbo1025
      @drgabbo1025 Год назад

      Acredito que não tenha necessidade, o React é bem otimizado a ponto desse tipo de operação simples não prejudicar o desempenho, apenas se fosse um calculo muito pesado, até pq memoizar um valor ira ocupar endereços de memória o que pode se tornar um problema também

  • @claudimards
    @claudimards Год назад +1

    Tá maluko, domina de mais, obrigado por todo compartimento cara!

  • @larissapecorari5787
    @larissapecorari5787 Год назад +1

    Nossa já cometi muito esse erro de estados derivados. Amei o vídeo, curto mas me ensinou muito. Faz mais vídeos assim Diego, continua fazendo os longos mas faz mais vídeos curtos também tratando de coisas pontuais. Hoje por exemplo eu nem teria tempo de estudar, cheia de serviço acumulado, filho, casa... mas enquanto estava rodando uma query gigante no banco consegui assistir a esse vídeo!! 😄

  • @PLifes
    @PLifes Год назад +1

    Boa cai recentemente! Mas a partir de agora consigo ter uma solução melhor! Valeu Diegão!

  • @shennonf.pereira3890
    @shennonf.pereira3890 Год назад +1

    Que top! Estudei hoje exatamente esse assunto, na documentação nova do React

  • @cafezinhoprodev
    @cafezinhoprodev Год назад +1

    Sensacional meu velho, faz tempo que busco como resolver isso, mas nunca encontrei uma solução bem explicada como essa. Vlw Diegão!

  • @cesarsturmer8625
    @cesarsturmer8625 Год назад +1

    Muito bom, saudades desse tipo de conteúdo. Brabo

  • @leandroramos1990
    @leandroramos1990 Год назад +2

    Diegão quem nunca passou por isso que atire a primeira pedra haha, conteúdo simples e objetivo parabéns.

  • @rsilva6
    @rsilva6 Год назад +1

    Caraca velho, já cai nisso! Nunca pensei em fazer dessa forma tão simples e eficaz! Vou começar a rever meus códigos e ajustar eles nesses pontos. Valeu Diegão.

  • @mayconalves360
    @mayconalves360 Год назад +1

    Já passei por isso algumas vezes, inclusive no último projeto que eu estava, isso causava uma lentidão no form por quê o form era gigante. Muito bom o vídeo.

  • @halisterfernando9160
    @halisterfernando9160 Год назад

    Super interessante! Quando eu estava aprendendo React na época, eu criei uma função que fazia uma cópia do Array salvo no estado pra fazer os filtros a partir dessa cópia, o retorno dela funcionava como a variável criada no vídeo

  • @Victor5163
    @Victor5163 Год назад +1

    Sensacional! Muito obrigado pela clareza do conteúdo, demais!

  • @MeuMundoAMG
    @MeuMundoAMG Год назад +1

    Um gênio, na moral. Parabéns pelo conteúdo! A gente fica tão mal acostumado que não pensa no básico.

  • @misaruto
    @misaruto Год назад +1

    Que video delicinha kkkk
    Tema VScode: Atualmente to usando o Omni da Rocketseat, depois de ficar muito tempo usando o Dracula Text Only.

  • @WandersonSilva-bx4yu
    @WandersonSilva-bx4yu Год назад +1

    cara, por conta do áudio pensei que meu PC tinha lagado nos 11:36 kkkkkk
    conteúdo top Diegão, tamo junto.

  • @observermind
    @observermind Год назад +1

    Parabéns pelo video man! Fiquei incomodado com o tanto de render que o react fazia. Comecei agora a estudar, mas que bom que podemos usar o js/ts pra resolver esses problemas, achei que realmente era necessário renderizar.

  • @carloscoelhogti
    @carloscoelhogti Год назад +1

    Muito bom Diego. Parabens por compartilhar seu conhecimento conosco.

  • @lithe-cryptosenft5590
    @lithe-cryptosenft5590 Год назад +3

    Mais um vídeo incrível da Rockeseat, o Diego manja muito de React não tem como... E o tema do vscode que eu to usando atualmente é o Kanagawa, é o tema mais bonito do VSCODE que eu já usei.

  • @antoniomarcelo1645
    @antoniomarcelo1645 Год назад +1

    Como sempre uma didática de outro planeta. Sensacional

  • @ixiba
    @ixiba Год назад +1

    Parece que foi direcionado para mim esse vídeo kkkk. Perfeito Diego, obrigado!!!

  • @betasetupper6103
    @betasetupper6103 Год назад +28

    Agora ja sei porque do double rendering (!== React 18)...
    Tem vezes que so de abrir a pagina, ele da double rendering (fora do React 18)..
    Apos esta aula, vou prestar mais atenção...
    Bem sobre o theme do VS Code....
    Eu uso o theme do Github Copilot,
    Mas gostei do theme que usou no video. Muito Bom...
    Abraços de Moçambique, Beira

    • @assuntograve4222
      @assuntograve4222 Год назад +1

      Kmk Compatriota kkk

    • @yarapolana
      @yarapolana Год назад

      Terra da minha mãe, que bom ver mais Moçambicanos deste lado.

  • @lucasmoreira1226
    @lucasmoreira1226 Год назад

    Diegão, me passa depois o café que tu toma para ver se fico um gênio desse jeito, uma solução tão simples e poderosa que me faz melhorar até a logica por traz do render e me faz pensar de forma mais analítica as renderização, muito massa esse vídeo

  • @birarr
    @birarr Год назад +1

    Diego sensacional como sempre! Essa dica vai fazer eu subir de nível, com certeza.

  • @eltonsantosoficial
    @eltonsantosoficial Год назад +2

    Eu aprendi a fazer daquele jeito com vc msm kkkkkk Programacao eh muito dinamica ne, a msm pessoa q ensina de uma forma, tempo dps ensina de outra forma melhor. Muito massa! Parabens pelo conteudo. Gosto muito desse tipo de video. Abraco

  • @adrielschmitz
    @adrielschmitz Год назад +8

    Outro ponto que gostaria de contribuir é sobre setar o state no instante em que o usuário digita... você não precisa fazer isso, pode-se usar, por exemplo, uma estratégia de debounce (se não sabe o que é, é uma boa hora pra pesquisar) e só buscar quando o usuário tiver certeza do que ele quer. Nesse caso aí é uma dumpList, o JS faz esse filter em um piscar de olhos, mas pensa que você precisa fazer essa busca no banco e cada letra digitada seria uma requisição.

    • @dieegosf
      @dieegosf Год назад +1

      Sim, existem mil coisas que poderiam ser diferentes, mas o ponto do vídeo é exclusivamente falar sobre estados derivados

    • @henriquemagno9326
      @henriquemagno9326 Год назад +3

      @@dieegosf Verdade, ainda bem que ele avisou no inicio do comentário que era OUTRO ponto

    • @vitorhugo4528
      @vitorhugo4528 Год назад

      normalmente eu faço requisições direto para api, onde cada letra é uma requisição, de fato isso me deixou bem pensativo sobre como pode ser um mal uso.

  • @ayrtonkrizan
    @ayrtonkrizan Год назад +1

    Diegao eu programo a react a uns anos já e com certeza tem esse tipo de escolha em alguns repositórios meus rs! Muito bom esse vídeo simples e objetivo! Abs

  • @develolder
    @develolder Год назад +1

    Top.. vlw, eu já cai nessa algumas vezes… Bora refatorar rsrsrs. Obrigado Diego

  • @YAHWEHROI
    @YAHWEHROI Год назад +1

    Caí e ainda caio demais nesse erro kkkkkk
    Excelente conteúdo, Diego. Parabéns 👏

  • @Marcelo-ju7ex
    @Marcelo-ju7ex Год назад +3

    Fala Diegao! Um tema do vscode q já uso tem muitos anos é o Fantastic, dentro desse tema existe vários outros temas, eu uso mais a verdade material do Fantastic, mas todas as opções dele são fantásticas!

  • @BrunolimaMe
    @BrunolimaMe Год назад +2

    Excelente aula!!!
    E poderia reduzir mais o código, colocando para filteredRepos receber repos, caso condicional fosse false.
    Assim, removeria a outra condicional da listagem, fazendo o map apenas em filteredRepos.

  • @TheBrunoleocoelho
    @TheBrunoleocoelho Год назад +1

    Parabéns pelo vídeo, simples e objetivo, mas "matou na mosca"!
    E é por essas e outras que tem tanto app ruim rodando por aí, e frustrando usuários (e outros devs que fazem manutenção no código)!
    Uma grande quantidade de devs "Reacters" não entende disso aí...

  • @pauloreis7093
    @pauloreis7093 Год назад +1

    Vi isso acontecer na prática hoje. Deve ser mais comum do que se pensa! 👏Ótimo conteúdo.

  • @marcosgomes3524
    @marcosgomes3524 Год назад +1

    Caramba!!! Muito obrigado, eu te digo que quando migrei pra React "fiquei cego" com as useStates... Lá no meu trabalho a gente considera heresia usar variáveis assim... Mas faz muito sentido, o código fica mais limpo e otimiza a aplicação!! MUITO OBRIGADO PELO CONTEÚDO!

  • @DanielRios549
    @DanielRios549 Год назад +16

    Pode parecer estranho usar variáveis simples no React, mas na boa, pra mim elas são a primeira opção, sempre, sem mais nem menos, usar estado é apenas necessário quando essa variável simples não está atualizando, ai sim o uso do estado é útil, no fundo continua sendo Javascript, quanto mais coisas nativas do Javascript vc usar, melhor

  • @vieiramaicon
    @vieiramaicon Год назад +1

    Rapaz, que dica simples, mas extremamente útil. Como tou aprendendo a ferramenta, tava caindo nisso direto.

  • @furkeys114
    @furkeys114 Год назад +1

    Eu não estava criando estados derivados pois sabia da performance, mas utilizei o truque de usar uma varável com condicional ao invés de fazer "data.filter().map()", usei apenas filteredVar.map(), deixou meu código mais bonito e "Matou" uma das várias renderizações desnecessárias que eu tava tendo.
    Valeu Diegão!

  • @HerlonCosta
    @HerlonCosta Год назад

    Solução simples, e muito prática. Sensacional!!

  • @luancordeiro2914
    @luancordeiro2914 7 месяцев назад

    Muito bom, valeu pela dica.
    Quando estamos com a Internet rápida nem percebemos, mas se configurar o slow 3g no devtools começamos a perceber esses problemas que passam despercebidos as vezes.

  • @carloseduardopachecocasara5803

    Uma dica bem legal tbm e fugindo um pouco do assunto XD é quando precisar fazer essa pesquisa conforme o usuário digita para uma API é comum usar um debouce! Facilita muito o trabalho e da um resultado bem legal. Existem algumas Libs que para auxiliar na utilização do mesmo mas também é possível criar um Hook especifico para usar no projeto. Vídeo top demais, parabéns!

  • @giuseppefantoni6846
    @giuseppefantoni6846 Год назад +2

    Faz mais videos de dicas como essa. Faz uns com umas dicas avançadas pff. Top d+ o video

  • @TheManoDouglas
    @TheManoDouglas Год назад +1

    Meu "padrinho" me falou exatamente isso ontem, me explicou e tal e hj caio nesse vídeo. RUclips ta me espionando em.

  • @aloissailer
    @aloissailer Год назад +1

    Ótimo video, parabéns! No momento estou usando Tokyo Night no VS Code.

  • @ezequielcardoso2431
    @ezequielcardoso2431 Год назад +1

    Que conteúdo top, parabéns!!!

  • @malujuartes
    @malujuartes Год назад +1

    Diego, parabéns novamente... Sua didática e conhecimento sempre nos surpreende. Como vc pediu, vai aí minha sugestão: como criar pacotes(libs) react + typescript para npm / yarn. Se vc já tem esse conteúdo, me indica aqui por favor...Abraços e parabéns!

    • @dieegosf
      @dieegosf Год назад

      Boooooa, é um dos vídeos que tenho na lista aqui pra gravação!!

  • @rennanoliveira3443
    @rennanoliveira3443 Год назад +1

    Que vídeo top, amanhã mesmo já vou dar aquela revisada no projeto da firma 🚀

  • @BrunoFilho
    @BrunoFilho Год назад +2

    Atualmente estou trabalhando em um projeto que cometemos muito esse erro. Já vamos começar corrigir pra já kkkkkkkkkkkkkkkk Valeuzão Diegola!

  • @JoaoVictor-ve1rb
    @JoaoVictor-ve1rb Год назад +1

    Conteúdo top demais, novembro vou ser calouro na turma do ignite 🚀

  • @EdsonSilva-qr5gr
    @EdsonSilva-qr5gr Год назад +1

    Só lembrei das computed do Vue que fazem isso, não sabia como fazer a mesma coisa no React, muito obrigado pela explicação

  • @iury664
    @iury664 Год назад

    muito bacana, tenho uns repositórios que provavelmente tem esse erro ai, vou tentar aplicar. Nem sabia que tinha um nome esse erro kkkk valeu mesmo.

  • @caiocosenzaofficial
    @caiocosenzaofficial Год назад +1

    Nossa que vídeo toppp, eu com certeza cai nesse erro várias vezes. Mto obg pelo conteúdo Diego😃👊

  • @raydes.menson
    @raydes.menson 5 месяцев назад

    Muito obrigado pelo video... de um ano... sou iniciante basicamente e me deparei com isso, bateu uma precupação enão consegui resolver... agora vou verificar se consigo diminuir o número de renderizações dos meus componentes... rsrsr...

  • @mbs2488
    @mbs2488 Год назад

    Excelente ! Muito Bem Explicado ! ! Parabéns pelos vídeos ! ! !

  • @pabloalan1656
    @pabloalan1656 Год назад +1

    Da para notar muito mais a diferença que não utilizar esse derived state em aplicações grandes, com muitos dados vindo do banco de dados, e vai por mim, ter que renderizar duas vezes seguidas uma pilha enorme de dados vai fazer muita diferença na performance da sua aplicação. Boa dica Diegão, queria eu ter encontrado de cara um tutorial como esse quando tive esse tipo de problema.

  • @SetimoRei
    @SetimoRei Год назад +1

    Hhuahuhau ja cai muito nisso! Que massa! Obrigado pelo excelente conteudo!

  • @marcelolupatini5553
    @marcelolupatini5553 Год назад +3

    12:38 Até onde me lembro eu não caí, mas é talvez sim e é bom ficar atento porque isso, além de poder diminuir na performance em alguns casos, pode poluir o código com comandos desnecessários

  • @viniciusnascimento6503
    @viniciusnascimento6503 Год назад +1

    Muito massa... vou usar esse tips showw 👏👏

  • @DjEdu28
    @DjEdu28 Год назад +1

    Fico feliz de nunca ter pensado nesse método errado

    • @DjEdu28
      @DjEdu28 Год назад

      Na inocência já fazia o correto

  • @hansolo-7625
    @hansolo-7625 Год назад +1

    Já passei por isso kkk e eu via o problema mas não sabia resolver!! Vc é top!

  • @samuelpauloantonio2211
    @samuelpauloantonio2211 Год назад +1

    Caraca 🤯! mano... Diego você é top muito obrigado, conselho mano tenta descansar um pouco eu senti que nesse video você emagreceu um pouco, não sei como esta espero que esteja tudo bem com você.. tamo junto !!!

  • @Os3t4God
    @Os3t4God Год назад +1

    Cai nessa semana passada com RN kkkkkk Valeu pela dica Diego!! Vou refatorar meu codigo.

  • @leandrojackson9631
    @leandrojackson9631 Год назад +1

    Maaaano do céu kkkkkk, eu sempre cometi esse erro, que massa!!! Quando vi o thumbnail do video, já imaginei, tou errando, certeza kkkkk. Valeu diego!!

  • @MateeusSouza
    @MateeusSouza Год назад +1

    Dica muito TOP e útil 👏👏

  • @joaojeeferdasilvafelix3817
    @joaojeeferdasilvafelix3817 Год назад +1

    Já caí nessa. kkk. Muito boa essa abordagem

  • @Alan4F50
    @Alan4F50 Год назад +1

    Ótimo conteúdo, cara!! valeuu

  • @gilvanbatista8402
    @gilvanbatista8402 Год назад

    Tava passando por isso hoje mais cedo muito obrigado por explicar!!

  • @matheusmaske7791
    @matheusmaske7791 Год назад +1

    Não já fiz, como pra mim era o melhor jeito de se fazer kkkkkk valeu Diego, ótimo vídeo!

  • @fabiobalan3583
    @fabiobalan3583 Год назад +1

    Esse Diego é MONSTRO!

  • @vinepoik
    @vinepoik Год назад

    Thanks bud! great video and instructions.

  • @talitaazevedo9187
    @talitaazevedo9187 Год назад +1

    Curti seu vídeo Diego, parabéns, sobre temas o synthwave 84 é bem legal também, com a fonte CodeNewRoman nerd fonts fica muito bonito.

  • @samueloliveira4465
    @samueloliveira4465 Год назад +1

    Recomendação de vídeo: Poderia fazer um vídeo sobre responsividade no tailwindcss

  • @AldemirSouzai9
    @AldemirSouzai9 Год назад +1

    Cara muito bom! Dicas incriveis \0/

  • @carlinhodev
    @carlinhodev Год назад +1

    Já fiz isso várias vezes, ótimo conteúdo

  • @smile4560
    @smile4560 Год назад +1

    Que show, eu geralmente fazia esse tipo de validação com variavéis mesmo mas sempre me perguntava se eu estava fazendo errado porque sempre via em outros códigos um useEffect KKK
    claro que eu não tinha certeza do que estava fazendo, mas me perguntava porque eu realmente precisária de um um useEffect pra fazer essa validação se já temos os dados no estado.

  • @valdogt1
    @valdogt1 Год назад +1

    Passo por isso todos os dias.. nem preciso olhar o código novamente pra confirmar.. é uma loucura só kkkkkk Excelente conteúdo

  • @PxonMG
    @PxonMG Год назад +2

    Muitas vezes dentro do componente existem vários outros estados que quando mudados forçarão o reprocessamento da variável que utiliza o filter, para evitar isso é possível utilizar o hook useMemo e declarar quais são as dependências de estado para determinado processamento.

    • @MateeusSouza
      @MateeusSouza Год назад +1

      Boa observação. Quando o valor da variável exige uma certa complexidade no processamento e o componente possui outros estados e/ou props que forçarão a renderização, talvez seja mais indicado utilizar o useMemo para evitar processamentos desnecessários.

    • @TheSostenesg7
      @TheSostenesg7 Год назад

      Justamente o que havia comentado, acho que ele deveria ter citado isso, pq muitos iniciantes vão tacar filter/map/reduce em componentes com vários states sem fazer memoização.

  • @alamo_DevFlow
    @alamo_DevFlow Год назад +2

    Ah, kkkk amanhã mesmo já vou arrumar o filtro que eu fiz na empresa kkkkkkkkkkkk. Obg pelo vídeo.

  • @luisfernando3405
    @luisfernando3405 Год назад +1

    Cara, recém estou iniciando a treinar para usar React, e este entendimento vai me ajudar bastante! Tô no Ignite, 😉

  • @celioribeiro5705
    @celioribeiro5705 Год назад

    Hey. Seriously. Thank you. I just downloaded soft and I can CLEARLY see why your vid was recomnded. You're an aweso intro into

  • @DVSK1
    @DVSK1 Год назад +1

    baita vídeo, parabéns pelo conteúdo

  • @nathancaio6375
    @nathancaio6375 Год назад +1

    Já caí e nem sabia que tinha caído, salvou demais hein Diegão

  • @rafacapoci1757
    @rafacapoci1757 Год назад +1

    Ótima dica que serve para muitas situações

  • @gustavocamargos8137
    @gustavocamargos8137 Год назад +2

    Mas se você tem mais estados dentro desse componente e uma filtragem mais complexa (com strings maiores por exemplo), você pode estar tendo que rodar a mesma filtragem repetidas vezes, sem que o valor do filtro tenha sido alterado. Talvez você possa ter menos renders, mas a cada render você pode estar tendo processamentos redundantes. Tem que ver até que ponto isso vale ou não a pena, acho que varia de acordo com o caso de uso.
    Fora isso, o ideal seria executar a filtragem somente quando usuario terminar de digitar, colando um timeout no useEffect, não tem porque ficar filtrando a lista a cada caractere que o usuario digita, acredito que sem um estado adicional, seja mais complexo fazer isso, se é que é possivel

  • @IgorSGZ
    @IgorSGZ Год назад +1

    Gênio 🤯!
    Eu nunca tinha pensado nisso

  • @nazirmudumane8830
    @nazirmudumane8830 Год назад +1

    Meu Deus, eu sempre cai nessa. Muito obrigado Diegooooo❤

  • @ThugLifeModafocah
    @ThugLifeModafocah Год назад +1

    Hummm, eu tava errando nisso. Valeu. As vezes na ansia de entregar no prazo, não conseguimos de fato analisar o que está sendo feito.

  • @fernandolaice8256
    @fernandolaice8256 Год назад +1

    Poxa valeu...eu já cometi muito esse erro. Valeu Diego

  • @lucasdepaula9744
    @lucasdepaula9744 Год назад +4

    aprendi isso recentemente na marra.
    Uma das coisas q podia ter feito para melhorar ainda é em vez de ter 2 states com o arr dos repos voce poderia ter apenas 1:
    const reposToShow = search.length > 0 ? repos.filter(...) : repos;
    sendo assim vc evita aquele ternário dentro do JSX

    • @me.dwesley
      @me.dwesley Год назад

      Boa solução!

    • @shadowsplay1852
      @shadowsplay1852 Год назад

      Isso não fere a regra de manipulação de state que o próprio React determina, onde não é recomendado manipulação no mesmo state. sendo que se houver alguma modificação no estado ao qual vc precisa manipular, seria de bom uso, você criar um "clone" para armazenar as manipulações? Me explique se eu estiver errado por gentileza.

  • @mariovarela99
    @mariovarela99 Год назад

    Massa, massa, massa, massa, muito massa. Brigadão Diego. Já cometi mesmo esse lapso, se é que podemos considerar isso um erro néh.😅