NÃO COMETA ESSE ERRO NO NEXTJS 13

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ต.ค. 2024

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

  • @ricardocnn
    @ricardocnn 3 หลายเดือนก่อน

    Que top! Essa dica muda o jeito de usar o Next com context. Parabéns pelo conteúdo!

  • @victorzarzar2724
    @victorzarzar2724 9 หลายเดือนก่อน +1

    Boa dica mano, uma boa sacada, recém começei a utilizar o nextJS, versão 14, e estava em dúvida sobre isso, já migrei 02 projetos da empresa, valeu pela dica!

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

    Realmente eu tava com duvidas nisso, da-le Junior!

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

      Fico feliz demais em saber disso man 👊

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

    Pessoal, não esqueçam de comentar suas dúvidas e sugestões aqui, isso me ajuda demais a continuar trazendo conteúdos! o/
    INFORMAÇÕES IMPORTANTES 👇
    TODAS as novidades do Next.js 13:
    th-cam.com/video/ekVlgxk7LLY/w-d-xo.html
    Livros que eu recomendo:
    Rápido e devagar
    amzn.to/3PLrYhq
    Como ser um programador melhor
    amzn.to/3POQ5fq
    Código Limpo
    amzn.to/3hHXVKY
    Arquitetura Limpa
    amzn.to/3Viqw7v
    Estruturas de dados e algoritmos com JavaScript
    amzn.to/3hM0L1u
    Entendendo Algoritmos: Um guia ilustrado para programadores e outros curiosos
    amzn.to/3BWsaEO
    14 hábitos de desenvolvedores altamente produtivos
    amzn.to/3uZqsyy
    Hábitos Atômicos
    amzn.to/3FGllIM
    Aprendendo a Aprender
    amzn.to/3WxM0hG
    A vida dos Estoicos
    amzn.to/3vaQIGl
    Meditações de Marco Aurélio
    amzn.to/3joFYS1

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

    Muito obrigado!! Esse foi o único vídeo que vi falando sobre como usar corretamente a Context API no Next! Parabéns

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

      Que show que curtiu Matheus, valeu demais 👊

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

    Top demais mano, seu conteúdo e muito foda!!!

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

    Sensacional Junior . Muito obrigado 🎉

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

    Vou me inscrever quando vc desativa essa extensão que fica acusando erro enquanto digita, isso ataca minha ansiedade kkkkkkkkkkk

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

      Kkkkkkkkkkkk Só vou desativar depois que tu se inscrever 😌😂

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

    Boa mano, video muito show cada vez mais esclarecendo nossa duvidas sobre o next 13 parabens

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

    Excelente abordagem! Valeu pelo conteúdo!

  • @rtsemensato
    @rtsemensato 10 หลายเดือนก่อน +1

    Primeiramente parabéns, sempre vídeos de qualidade, só queria tirar umas dúvidas se for possível. Para um context só ficou bem claro, mas no caso se eu tenho vários contexts na minha aplicação, eu iria envolvendo os contexts dentro do Providers assim como a gente fazia na _app? E pro exemplo das libs externas também não entendi como seria.

    • @devjunioralves
      @devjunioralves  10 หลายเดือนก่อน

      Valeu demais! 👊
      Exato, basta tu ir adicionando os contexts necessários, criados por você ou de libs externas, dentro do Providers.

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

    Isso que chamo de alto nivel. top irmao

  • @ogoidmp
    @ogoidmp 5 หลายเดือนก่อน +2

    E para usar o Hook nos componentes? ... sem o 'use client' ele não entende a importação. Tem algo assim pra fazer também?

    • @devjunioralves
      @devjunioralves  4 หลายเดือนก่อน

      Sim, quando tu precisa de algo do React que seja client side (como os hooks), vai ser necessário a diretiva 'use client'.

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

    @devjunioralves mas ainda sim, mesmo com o contexto desse jeito, eu não conseguiria usar o estado do lado do servidor né ?

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

    Mas no caso, o children do provider, (que no caso poderiam ser todas as paginas do sistema) nao ficariam como client components dai?

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

      Não, isso que é interessante nesse pattern. Tem um vídeo exclusivo sobre ele, confere lá, vai te ajudar entender melhor.

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

    Excelente conteúdo! Fiquei com duvida como seria possível usar uma biblioteca que use contexto, como o material UI. Tem como fazer um exemplo?

    • @Thiago-pc4dg
      @Thiago-pc4dg ปีที่แล้ว +1

      Tô com essa mesma dúvida, comecei agora com Next.js e decidi aprender alguma biblioteca de componentização, no caso o Material UI também. Estou com essa dúvida pois todos os componentes da biblioteca são client-side e me parece uma desorganização desnecessária ficar isolando cada componente para usufruir do server-side

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

      Boa, tem como sim, mas o caminho é utilizar essa estratégia de separar os providers.

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

    Muito obrigado por compartilhar sua experiência conosco.

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

    Muito bacana o conteúdo, porém tenho uma dúvida. Server components se estiverem encapsulados dentro de client components, igual o exemplo, onde o componente Providers é client, eles não se tornam client components?

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

      o next vai renderizar o component individualmente, logo encapsular um server-component dentro de um client component não fará o mesmo ser renderizado no browser.

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

      Excelente pergunta, a resposta é não.
      Pois estamos passando os componentes via children. Tem um vídeo focado no pattern que utilizei, confere lá, pq la eu explico mais sobre isso e como funciona.

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

    Interessante! Seria bacana refazer aquele vídeo de rotas privadas fazendo o uso disso!
    Parabéns!

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

      Perfeito Gabriel, vou refazer sim!

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

    vc colocou no layout o provider que faz tudo que tiver no children ser client side, o que faz todas as páginas serem client side

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

      Não Kimitri. Se você passar via props, não tornar os componentes filhos em client side, inclusive essa é a forma correta de intercalar RSC com RCC.
      Tem outros vídeos aqui no canal onde eu explico mais sobre isso.

  • @Gmaaa
    @Gmaaa 8 หลายเดือนก่อน +1

    você já poderia colocar o 'use cliente' no seu contexto? ao invés de criar outro competente e fazer a importação do context falando que ele é 'use cliente'?

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

      Sim poderia, sem problemas. Eu fiz dessa forma apenas como exemplo e para deixar centralizado em um único ponto, ja que todo context sempre será client side.

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

    Opa tudo bom, sinto em discordar, colocar um 'use client' não diz que todos os filhos serão clients, diz somente que esse seu componente espera ser "completamente funcional" no lado do cliente (por exemplo usar a window), já os filhos desse context, caso sejam sem 'use-client' serão renderizados no lado do servidor mesmo assim. Ou seja, é possível ter componentes client-side com filhos server-side.

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

      Sim Jonathan! A única forma de fazer essa combinação é exatamente como você disse, componentes passados via children. Assim, podemos intercambiar client components com server components.

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

    Bom video, em um projeto meu, eu estou com dificuldade em integrar uma api do stripe no next 13, você poderia trazer para me ajudar?

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

      Faz um tempo que não uso o Stripe, mas acho que posso trazer sim Leonardo.
      Valeu man 👊

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

    Showww demais! 🚀
    Junior, não daria para usar o use client no próprio context?

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

      tambem fiquei com essa duvida.

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

      tive essa msm impressão, na vdd, até uso dessa forma em alguns projetos

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

      Daria sim Luigi, mas daí tu teria que fazer isso em todo contexto que for utilizar.
      Fazendo igual mostro no vídeo, dentro do Providers, o 'use client' é aplicado em todos.

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

    Conteudo top, me ajudou demais!!!

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

    Cara Parabéns pelo excelente conteúdo, tenho uma dúvida como adicionar mais de um contexto?

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

      Valeu Giovanni!
      Tu pode ir passando um contexto dentro do outro, eu tenho um vídeo onde mostro isso aqui no canal, vai te ajudar.

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

    Uma dúvida, e pq não passar o 'use client' apenas para o UserContext ? que tem o provider junto como o hook.

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

      Tu pode passar lá, porém, se tiver mais contextos dentro de Providers, terá que fazer isso em cada um deles. Passando no Providers, automaticamente todos os contexto ali importados serão client components.

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

    Ao criar um tema pelo context como posso pegar seus valores? Meu context está retornando 2 coisas: nome (light ou dark) e função pra alterar o tema, precisaria de mais alguma coisa?

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

      Normalmente os valores são passados para o provider, e ao envolver o provider na nossa aplicação a gente pode fazer o uso desse hook (useUsersContext: exemplo do vídeo) para conseguir recuperar esses valores onde quisermos.

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

      Exatamente o que o @mtalves disse! Perfeito.

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

    Boa noite! A partir de quantos componentes "herdeiros" você acha interessante utilizar o Context Api? Você acha que se tivermos 3 componentes filhos, já seria o ideal? Obrigado!

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

    Mais um ótimo vídeo, parabéns!

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

    Sabe dmais!

  • @vladimir-costa
    @vladimir-costa ปีที่แล้ว +1

    Sensacional! Você acha que essa complexidade a mais pode ser um ponto negativo?

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

      Os RSC trazem uma complexidade a mais sim, isso é fato. Precisamos entender como funcionam, pois é bem diferente de um componente client side.
      Porém, trazem muitos benefícios tb. Mas não vejo como ponto negativo, é questão de costume mesmo.
      Valeu Vladimir!

  • @marcosmoura2667
    @marcosmoura2667 7 หลายเดือนก่อน

    Como faço para uma página de etapas de cadastro ao clicar em voltar não perder o valor dos estados em uma context Api? Não estou conseguindo recuperar

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

    Salve Júnior, estou com uma dúvida sobre tipagem em TS, eu tenho que tipar TUDO ? é necessário tipar um useSate ? Tipar retorno de funções ? Existem boas práticas pra isso ?

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

      normalmente tipagem de useState é valida quando a gente declara objetos ou arrays vazios no estado inicial desse hook. Mas já estruturas como strings, números e etc o ts cuida de fazer autoinferência, um exemplo:
      const [name, setName] = useState(' ')
      Nesse primeiro caso, declaramos uma string vazia nessa nossa variável name, se vc passar o mouse por cima da variável name, verá que o TS já cuidou da tipagem. No entanto, nesse caso:
      const [data, setData] = useState([ ])
      Verá que o typescript não é capaz de inferir qual o formato desse array, aí que entra nossa tipagem, pois vc vai descrever do que esse array é composto (strings, números, objetos?)

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

      Agora falando em relação a retorno de função, seria uma boa prática, até pq nem sempre o typescript consegue inferir o tipo do retorno, aí você pode ajudar ele fazendo essa tipagem adicional. Mas vai muito da construção da função em si, ou seja, são casos e casos.

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

      Boa pergunta João!
      O Typescript já consegue inferir em várias situações, principalmente nesses casos que você citou, então, não há necessidade de tipar tudo.
      Eu tenho vídeos aqui no canal onde falo sobre isso, confere a playlist de TS que vai te ajudar.

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

      @@mtalves Valeu pela resposta monstra mano ! Eu fiquei com dúvida por conta dessa inferência que o TS já faz, agora está tudo bem esclarecido, valeu demais!

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

      @@devjunioralves Valeu Júnior, eu trabalho com Js e estou me aventurando pra TS agora, seu canal está sendo muito importante pro meu aprendizado, em ts, react e principalmente next

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

    Mano, muito bom teus videos, mas cara, eu to precisando de uma explicaçao da raiz da coisa, sou desenvolvedor IOT e to migrando pra area web usando react, to tendo umas dificuldades na parte de rotas privadas, autenticaçao com email e senha, e retornos de tokens para o back tratar si o usuario pode ou nao usar a aplicação, faz um video sobre axios recebendo e retornado o token para validação, passando tbm essa mesma validação em rotas privadas, to com uma grande dificuldade nisso, entra em contato qualquer coisa, si pah agnt faz ate uma aula particular e agnt ver valores, valeu mano.

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

      Você ta usando Next.13 com App Routes? Se sim, você pode usar o padrão Api Routes e isolar as chamadas do Axios lá dentro. Então vai ficar algo como: Você cria um context igual o Junior mostrou no video, e dentro dos métodos do context (login, logout, register) você vai ter chamadas axios pra essa rota Api Routes (/api/auth/login, /api/auth/logout). Por fim, você pode criar, dentro do Api Routes, um (/api/auth/token) que retorna, usando o useCookies e cookiesStore o cookie. Ah! E no /api/auth/login, lembra de criar o cookie com o access token (ou o que você estiver usando).
      Boa sorte mano :)

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

    E como eu faço pra usar esse "name" que tá vindo no contexto, em um server component? Por exemplo, usando um Route Handler pra pegar informações baseado nesse name?

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

      Tu não consegue utilizar Context dentro dos RSC, pois é algo exclusivo do client.
      Nesse caso, tu precisa de uma estratégia de composição de componentes para utilizar os contextos apenas onde são necessários.

  • @pedroribeiro1890
    @pedroribeiro1890 9 หลายเดือนก่อน

    Excelente video!
    Mas não consegui resolver meu problema, está dando o mesmo erro que deu no video, estou o NextJs14, segui seus passos mas não consegui resolver. Se alguém puder dar uma força, eu agradeço!

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

    ao fazer isso na no rootlayout, as paginas permanecem server component ou se tornam client component ?

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

      Permanecem server side components, porém com componente do cliente como o Juniro fala em 13:11

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

      João, exatamente oq o Luigi falou.

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

    Estou com uma dúvida agora eu ainda não estudei nenhuma versão do nextjs, posso estudar a versão antiga e depois a versão mais nova ,ou já devo partir direto na versão mais nova ? Agradeço todos que me ajudarem tmj

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

      Acho que você começar com a versão 13 mesmo (é a ultima até o momento), porém utilizando a Page Router (padrão "antigo" de roteamento) e depois que tiver uma base legal, ir para a App Router (padrão "novo").

  • @tiagolopes-setentrionals7533
    @tiagolopes-setentrionals7533 ปีที่แล้ว +3

    Júnior , o REACT CONTEXT é uma API que é utilizada para GERENCIAR ESTADOS(states managament) , certo ??? Ou seja, ele é diferente dos REACT HOOKs (ex. useContext) ??? Parece ser uma pergunta inútil, mas vai me ajudar bastante 😊 Ps. Mano, estou te seguindo e dei um LIKE =)

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

      Fala Tiago, blz?
      Não é inútil não man, a pergunta é boa.
      A Context é uma feature que o React nos disponibiliza para repassar props para componentes distantes na hierarquia (componentes "desconexos"). E utilizamos esse recurso via uma API do React.
      Mas a Context API não é um state management, tem um vídeo aqui no canal sobre isso, recomendo tu conferir lá pra entender mais sobre.
      Valeu demais! 👊

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

      Um exemplo de gerenciador de estados seria por exemplo o Redux.

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

      @@matheuspadilha2727 isso Matheus, Redux, Zustand, Recoil, Jotai...

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

    Que tema é esse do vscode?
    icones e cores

  • @PedroHenrique-je6yu
    @PedroHenrique-je6yu ปีที่แล้ว +2

    th-cam.com/video/pF3rqQzS3Jo/w-d-xo.html
    o vídeo dele falando sobre useCallback

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

    Gostaria de fazer uma pergunta, não tem muito a ver com o conteúdo do video mais sim com as "api routes" do next, como você lida com o tratamento de erros assíncrono nas "api routes" ? para fins de clean code

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

      Micael, da mesma forma que você trata em um backend (com express por exemplo).
      Se você não tem experiência com Node, recomendo estudar um pouquinho, pois, vai te ajudar demais, principalmente trabalhando com o Next.js.
      Eu posso fazer um vídeo explicando melhor sobre isso, se tiver mais pessoas com essa dúvida.

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

      @@devjunioralves eu sou mais do front mesmo kkk, mais com express eu utilizo um middleware para lidar com os erros, um "resolver" que contem uma "promise" que tenta resolver minhas rotas caso contrário o middleware de erro é executado, No nextjs não encontrei uma forma estável de encadear meus middlewares

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

    comentario pra engajar o canal

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

    Eu queria que pelo amor de Deus alguém me mostrasse como faria um filtro de buscas utilizando next13.4, onde os dados vem de uma api por exemplo, poderia ser jsonplaceholder, jogar os dados na tela, colocar um input onde eu digito a busca que quero fazer nos dados que vem da api.

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

      Tu pode fazer o fetch da API em um RSC, daí passar, via props, os dados para um client component, onde estão os filtros (já que vai precisar de interação do usuário).

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

    Por que exportar ts ?

  • @alison.aguiar
    @alison.aguiar ปีที่แล้ว +1

    Mano só faltou mostrar funcionando.

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

      Tenho outros vídeos aqui mostrando mais sobre esse assunto Alison, da uma olhada, vai te ajudar bastante.

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

    cara, me socorre ai, no next qnd tento enviar a resposta da api, ele diz que res.status/json não é uma função