All 29 Next.js Mistakes Beginners Make

Поделиться
HTML-код
  • Опубликовано: 2 июн 2024
  • Check out Semaphor for analytics here: semaphor.cloud/home (paid sponsorship).
    NEW React & Next.js Course: bytegrad.com/courses/professi...
    Hi, I'm Wesley. I'm a brand ambassador for Kinde (paid sponsorship).
    👉 Check out Kinde for auth and more bit.ly/3QOe1Bh
    👉 NEW React & Next.js Course: bytegrad.com/courses/professi...
    👉 Professional JavaScript Course: bytegrad.com/courses/professi...
    👉 Professional CSS Course: bytegrad.com/courses/professi...
    👉 Web development roadmap 2024 & 2025: email.bytegrad.com
    👉 Email newsletter (BIG update soon): email.bytegrad.com
    👉 Discord: all my courses have a private Discord where I actively participate
    👉 Kinde: check out Kinde for auth and more bit.ly/3QOe1Bh
    ⏱️ Timestamps:
    00:00 Intro
    01:58 Semaphor (add analytics to your Next.js app!)
    04:11 #1: "use client" too high
    09:45 #2: Not refactoring for "use client"
    10:45 #3: Thinking a component is a server component because it does not have "use client"
    12:28 #4: Thinking that a server component becomes a client component if you wrap it inside a client component
    17:52 #5: Using state management (Context API, Zustand, Redux) in server components
    19:37 #6: Using ‘use server’ to create a server component
    21:46 #7: Accidentally leaking sensitive data from server to client
    23:01 #8: Thinking that client components only run in the client
    27:53 #9: Using browser API’s (e.g. localStorage) incorrectly
    33:08 #10: Getting hydration errors
    38:43 #11: Incorrectly dealing with third-party components
    42:27 #12: Using route handlers for getting data
    44:28 #13: Thinking it’s a problem to get the same data in different places
    48:45 #14: Getting a ‘waterfall’ effect when fetching data
    53:12 #15: Submitting data to server component or route handler
    59:38 #16: Getting confused when the page doesn’t reflect data mutation
    1:01:43 #17: Thinking that server actions can only be used in server components
    1:03:40 #18: Forgetting to validate & protect server actions
    1:07:26 #19: Adding ‘use server’ to make sure something stays on the server
    1:09:35 #20: Misunderstanding dynamic routes (params & searchParams)
    1:13:12 #21: Incorrectly working with searchParams
    1:19:12 #22: Forgetting to deal with loading state
    1:20:35 #23: Not being granular with Suspense
    1:22:53 #24: Adding Suspense in the wrong place
    1:23:40 #25: Forgetting ‘key’ prop for Suspense
    1:29:49 #26: Accidentally opting a page out of static rendering
    1:36:10 #27: Hardcoding secrets
    1:39:52 #28: Not making a distinction between client and server utils
    1:42:05 #29: Using redirect() in try / catch
    #webdevelopment #reactjs #nextjs

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

  • @ByteGrad
    @ByteGrad  5 дней назад +2

    Hi, my latest course is out now (Professional React & Next.js): bytegrad.com/courses/professional-react-nextjs -- I'm very proud of this course, my best work!
    I'm also a brand ambassador for Kinde (paid sponsorship). Check out Kinde for authentication and more bit.ly/3QOe1Bh

  • @sedmidivka
    @sedmidivka Месяц назад +97

    you are THE ONLY ONE who actually is trying to explain this on examples which aren't complete copies of the documentation together with the same, exactly the same, explanation. I'm so thankful I can't even express this properly in words, it's very frustrating to look for some explanations and just getting these videos with the exact documentation copy paste with 0 info over and over and over again...... man

  • @hilmiterzi3847
    @hilmiterzi3847 5 дней назад +2

    This tutorial definetly should have saved thousands of Nextjs devs lol. Was at least 100x better than the nextjs documentation

  • @ZynthCode
    @ZynthCode Месяц назад +20

    This is gold, thank you. Well explained, especially the server/client component differences and woes, such as Hydration errors.
    Extra Side Note: I rarely, if ever, watch a 2h video tutorial in one go, so kudos for keeping it extremely relevant for Next.js devs :)

    • @ByteGrad
      @ByteGrad  Месяц назад

      Glad it was helpful!

  • @psmontte
    @psmontte Месяц назад +7

    You are the best Next.js teacher 🌟 I've bought overpriced Next.js courses from RUclipsrs with 1M+ subscribers, but nobody explains like you do! 👍

  • @roguegoblin2407
    @roguegoblin2407 Месяц назад +4

    I've been working with Nextjs for two years and you made me aware of so much mistakes I made in past projects. Great video.

  • @hyperbrug9328
    @hyperbrug9328 Месяц назад +6

    This is actually the #1 next js video for beginners. You cleared up so much of my confusion

  • @ustav_o
    @ustav_o Месяц назад +5

    exactly what i was looking for. keep it up!

  • @rahulgupta7720
    @rahulgupta7720 Месяц назад +3

    Highly comprehensive video!
    Keep going

  • @AliAchternaam
    @AliAchternaam Месяц назад +1

    You are the man! This channel is a gold mine for people learning NextJs. Can't praise and recommend you enough!!!

  • @AlecHalePletka
    @AlecHalePletka 11 дней назад +2

    best NextJS video on RUclips & it's not even close

  • @ztipsamme
    @ztipsamme 16 часов назад

    Perfect timing! I'm currently on week 4 of learning Next.js and this video has been very helpful 🤓🙏🏼

  • @ansarqazi4377
    @ansarqazi4377 13 дней назад +1

    I'm just around half way there in the video & feeling like I have watched hours long tutorial. Highly appreciate the content! Highly appreciate your efforts & knowledge! Bundle of thanks!

  • @AndriusLauFullstack
    @AndriusLauFullstack Месяц назад +1

    Nice overview! I have some experience with React and started learning NextJs. Currently, I'm building a full-stack app, and for a front-end I decided to use NextJs. So your video is a good reminder of which mistakes need to be avoided.

  • @aaliraza4004
    @aaliraza4004 Месяц назад +1

    Thank you, Wesley, you resolved many of my issues.👍

  • @thedavistheory7674
    @thedavistheory7674 Месяц назад +1

    Most concise react content creator, thanks a lot for the tutorials!

  • @hey.............
    @hey............. 26 дней назад +1

    hands down, one of the most useful video on next.js. Subscribed.

  • @staticwasabi
    @staticwasabi 27 дней назад +1

    Thank you for the clear explanations!

  • @technologymad9253
    @technologymad9253 Месяц назад +2

    myyyyyyy heroooo its a treasure for nextjs devs!! really expecting a video like this from you!!

  • @lukaszw1
    @lukaszw1 28 дней назад +1

    This was an awesome knowledge pill! I've watched it in one go and now I understand my code better. Thank you!

  • @abishekbaiju1705
    @abishekbaiju1705 28 дней назад +1

    Thanks again. The only channel where I am very excited for the new uploaded videos...

  • @northerncoder
    @northerncoder 23 дня назад +3

    Great video. I am only 20mins in and it has already cleared up server/client confusion I had while starting to work with Nextjs.

  • @wusswuzz5818
    @wusswuzz5818 3 дня назад +1

    This was one of the best deliveries i have seen outside of dave gray. Will be picking up that course, and hoping it is delivered with the same clarity.

  • @bribri-dy1te
    @bribri-dy1te 5 дней назад +1

    This is what we need, it clears all the misconception about next js, huge thanks to you sir.

  • @user-un9cs7zq5w
    @user-un9cs7zq5w Месяц назад +1

    Thank you. Great Explanation!

  • @rahulnag9582
    @rahulnag9582 28 дней назад +1

    One of the best video on NextJS doubts which will only arise once you become expert in NextJS after completing FEW videos FEW projects.
    But your video is so amazing that if any dev will watch it completely will definitely become pro in NextJS and any confusion which used to come when we do large project will be cleared out after watching this,
    Thanks :)
    Much love from India.

  • @mounir101
    @mounir101 25 дней назад +1

    Great video, bro! I learned a lot more than I did from the Next.js documentation because you explained things thoroughly. Thanks a lot for your hard work.

  • @insane-works
    @insane-works Месяц назад +1

    wowzers! this was awesome 2 hours!
    agreed with comments above, mistakes you were showing, was the mistakes i made in a some of my previous projects
    great job! subscribed!

  • @shashank.superone
    @shashank.superone Месяц назад +5

    Amazing! Awesome! Fabulous! You have explained ALL what all common confusions go on with NextJs. NextJs should include this video in their official guides and help/troubleshoot/Faqs docs. This cleared most of my doubts for which I was not finding a fitting resolutions together combined anywhere else. ❤ Thanks alot #ByteGrad

    • @ByteGrad
      @ByteGrad  Месяц назад

      Thanks, enjoy!

    • @shashank.superone
      @shashank.superone Месяц назад

      ​@@ByteGrad One thing doubt remains, when I have to use header on all page, or authentications , how to make sure not all pages become dynamic rendered? U said middleware word, but that not explained. What is real solution?

    • @kaziprosper2229
      @kaziprosper2229 Месяц назад

      Middleware is a special file you create at the root of your next js project. This file is where you put all your authentication logic. Just like loading, error, route and page files have a special meaning in next js, a middleware file would automatically be recognized by next js and would be run by next js before the routes you specify in the matcher of helper function written in your middleware file.

  • @robboten
    @robboten Месяц назад

    Really useful knowledge and well explained! So easy to miss some of these when starting with next.js. Thank you!

  • @russelschuster8036
    @russelschuster8036 10 дней назад +2

    lot of hard work. just 12 minutes into this video and i already liked and subscribed this channel.

  • @nikita-dev
    @nikita-dev 22 дня назад +1

    Amazing video! This was super helpful.

  • @jfhandfield
    @jfhandfield Месяц назад +1

    My god was that well explained. I needed that video months ago when I started my project it would have help soooo much. Thank you for the video

  • @Krblshna
    @Krblshna 22 дня назад +1

    Brilliant video, thanks for hard work

  • @juanevillam
    @juanevillam Месяц назад +1

    Great video! Very clear

  • @kamrant8915
    @kamrant8915 20 дней назад

    Thank you very much for your comprehensive explanations.🥰

  • @azradreamer6314
    @azradreamer6314 15 дней назад +1

    Wesley, U r AMAZING! Thank you!

  • @avi_mukesh
    @avi_mukesh 12 дней назад

    Only about half hour into the video, but already learning a lot. Thank you so much for making this

  • @aisdjsiasiodjisoajd7698
    @aisdjsiasiodjisoajd7698 13 дней назад +1

    Change the title to Mistakes devs make. I’m not a beginner and you made some great points!

  • @aymenbachiri-yh2hd
    @aymenbachiri-yh2hd 8 дней назад +1

    thanks man, keep posting videos like this

  • @technep9776
    @technep9776 20 дней назад +1

    wow. Great content , keep it up man.

  • @patolorde
    @patolorde Месяц назад +2

    thank you very much this is a really great masterclass on next.

  • @cerdek9190
    @cerdek9190 20 дней назад +1

    Very informative thank you

  • @techGPT97
    @techGPT97 Месяц назад +1

    amazing quality content.kudos

  • @justinsong3506
    @justinsong3506 8 дней назад +1

    very deep and easy understanding explaination

  • @qsales2022
    @qsales2022 Месяц назад

    Thanks for your next js videos❤❤

  • @VincentFulco
    @VincentFulco Месяц назад +1

    Phenomenal collection!

  • @akibmahmudrime2845
    @akibmahmudrime2845 Месяц назад +1

    This is a very good video. Nice work

  • @thedigitalceo
    @thedigitalceo Месяц назад +3

    This is pure gold.

  • @christian_k_e
    @christian_k_e 26 дней назад +1

    I normally dislike youtube videos to learn about frameworks and programming but, I believe nextjs documentation is way too high level and as soon as you hit some specific problem is rather useless. As many others said, this cleared a lot of my confusion with nextJS, thank you.

  • @denvelez123
    @denvelez123 Месяц назад +1

    great video!! thank you

  • @EduarteBDO
    @EduarteBDO Месяц назад

    This video is super relevant, I learned a lot of things, I found out that I was not validating my server actions, I'll have to address this because I thought that nextjs automatically validated them but now that I think, there's now way that next will know what type things are for validation, this is just a typescript layer. I have to come up with a nice validation strategy for keeping types but knowing that it can be unknow data for server actions.

  • @davidalejandrollanesbojorq63
    @davidalejandrollanesbojorq63 14 дней назад

    This video is really good. I’ve just finished reading the docs and you just filled all the blanks in my mind.
    Btw, what Vs code theme are you using?
    Thx

  • @rammehar5531
    @rammehar5531 Месяц назад +1

    Wonder full great explanation thank you brother. please also make a video on security in nextjs. how to add rateLimiter etc.

  • @gopal914
    @gopal914 24 дня назад +2

    Every minute of this video is called "QUALITY CONTENT"

  •  19 дней назад +1

    Great video!

  • @vikasni95
    @vikasni95 9 дней назад

    Wow sir you are attempting to do those things which other youtube doesn't focus on thank you sir 🥰🥰😍

  • @avigdev
    @avigdev Месяц назад +1

    Great!! I learned a lot (Mainly from the mistakes(8,9,10))

  • @gerkim3046
    @gerkim3046 Месяц назад +1

    Please make a similar one for next-auth, thank you Grad.

  • @learner8084
    @learner8084 29 дней назад +1

    This is so good. I want to click the like button many times for you... thanks...

  • @user-xp6gm2bz8w
    @user-xp6gm2bz8w 3 дня назад +1

    Incredible content 👏

  • @justinleong3967
    @justinleong3967 3 дня назад +1

    Excellent explanation

  • @nasko235679
    @nasko235679 26 дней назад +1

    Your course was amazing and your videos are always top tier. I would love it if you could do a database design course/series of videos.

    • @ByteGrad
      @ByteGrad  26 дней назад

      Great to hear, thanks! Will think about your suggestion

  • @real23lions
    @real23lions 6 дней назад +1

    Movie length video. GOATed

  • @DrShmuck
    @DrShmuck 13 часов назад

    Such an underrated channel!

  • @mrtechnostart
    @mrtechnostart 5 дней назад +2

    You earned a sub, Next God.

  • @bonadio60
    @bonadio60 Месяц назад +1

    Great tips!!!

  • @tokomnyori6730
    @tokomnyori6730 21 день назад +1

    Brilliant! 🚀

  • @nextreact
    @nextreact Месяц назад

    I learned a lot. Thanks

  • @hasst9261
    @hasst9261 28 дней назад +1

    Useful information

  • @ZynthCode
    @ZynthCode Месяц назад +5

    Intrusive thoughts: Take a shot every time "component" is being said

  • @kingmeditation6308
    @kingmeditation6308 Месяц назад +2

    thanks. i learned a lot

    • @ByteGrad
      @ByteGrad  Месяц назад

      Glad to hear it!

  • @jegadheeswarank6290
    @jegadheeswarank6290 20 дней назад +1

    Your videos are great

  • @teetanrobotics5363
    @teetanrobotics5363 27 дней назад +1

    Content is awesome. Volume needs to 3x atleast

  • @facundopellicer7514
    @facundopellicer7514 Месяц назад +1

    Awesome video!
    I'm a bit confused about "getData" functions and the "use server" directive. We shouldn't place "use server" at the top of a file which has a bunch of "getData" functions, because we are exposing a POST endpoint, and also because calling a "getData" from a server component already make the get in the server.
    We should use "use server" only to mutations functions, and validate those.
    Did I get that right?

    • @facundopellicer7514
      @facundopellicer7514 27 дней назад

      So I answer myself after some investigation. React recommends to use "server-actions" for mutating. According to React docs "Server Actions are designed for mutations that update server-side state; they are not recommended for data fetching.". You could use it to retrieve information but is not the intended way.
      Server actions request is a POST, so you will be fetching data with a POST request.
      I found in a Reddit post this answer: "I asked one of the members of the Vercel team on Discord if we could use server actions to fetch data. While it's possible, they don't encourage this, but the response I got was a bit ambiguous."

  • @imkeyi
    @imkeyi 12 часов назад

    if i have product card component that contains the favorite button, should i direct make productCard component 'use client' or create a 'use client' favorite button component and import it in productCard
    thank you

  • @rajfekar1514
    @rajfekar1514 Месяц назад +1

    thank you byte

  • @Harshit.git911
    @Harshit.git911 Месяц назад +1

    quality work

  • @martg0
    @martg0 25 дней назад +1

    If I have a card component that fetches database data, and this card component needs a zustand state transferred via props, how could it be done? The issue appears when I need client parent component using client state, and loads a child from server component. If I do an API I can solve this because everything will run at the client, but I want to get rid of APIs to connect to the database. thanks!!

  • @Tszyu01
    @Tszyu01 25 дней назад

    Coming from other ssr frameworks it’s absolutely terrifying using web APIs causes next to entirely collapse without specifying magic words use client. Just something you don’t need to think about in other frameworks.

  • @fiantsoharena1584
    @fiantsoharena1584 Месяц назад +1

    Very good explaination as always! Could you please give me the VS code theme that you use?

  • @TheMrPoss
    @TheMrPoss 11 дней назад +1

    thanks. can i ask you what vscode theme you use?

  • @Applecitylightkiwi
    @Applecitylightkiwi 16 дней назад +1

    Lekker gedaan gap

  • @joepetrillo6185
    @joepetrillo6185 21 день назад

    There is no way out of dynamic rendering if we need the header component in use on the page right?

  • @psmontte
    @psmontte Месяц назад

    The next video idea, explain all the best ways to access data, covering both client and server components.

  • @learner8084
    @learner8084 29 дней назад

    At 1.03.22 the component is client... isn't client not supposed to use async ? The onclick invoked an async called back.

  • @ts8960
    @ts8960 Месяц назад +1

    thanks

  • @Matter60
    @Matter60 8 дней назад

    if i use a public api should i fetch it on the server or client side?

  • @kale_bhai
    @kale_bhai Месяц назад

    What about use clients on layout if some package requires use client to run like amplify auth

  • @polidahiya9024
    @polidahiya9024 28 дней назад

    can we use suspense on images or Image component of Nextjs?

  • @joepetrillo6185
    @joepetrillo6185 Месяц назад +1

    What vscode theme do you use?

  • @sirKims
    @sirKims 14 дней назад +1

    Big W Sir

  • @langqin
    @langqin 21 день назад +1

    useful !

  • @deepmane5845
    @deepmane5845 Месяц назад

    Can you explain how to use Redux Toolkit or React Redux in Next.js? After implementing it, our entire application can be either client-side or server-side. I'm unclear on how to properly use it in Next.js, so could you clarify my doubts? Also, please explain the advantages and disadvantages of using Redux in Next.js.
    I've noticed that there are tutorials on RUclips not covering the use of Redux in Next.js. Is Redux unnecessary in Next.js, or is there a reason it's not widely used? If a larger application requires Redux in Next.js, how is it implemented?
    I'd appreciate it if you could address these concerns in your next video. I've commented multiple times on other channels, but I haven't received any responses. If you can create a video on this topic, it would be immensely helpful, as I've been struggling with these questions, and it seems others may have similar doubts. Thank you!

  • @WebDevCody
    @WebDevCody Месяц назад +2

    29 pitfalls.. makes me wonder why I keep using next.

    • @ByteGrad
      @ByteGrad  Месяц назад +1

      The learning curve is real, but worth it IMO

  • @prabhurao2773
    @prabhurao2773 27 дней назад

    is it weird that i knew pretty much everything in here and a lot more abou tnext js ? and i only started 6 months ago where i was tasked to move pages router to app router - server actions is the only one that i have not yet played around with cause my project does not have a need for that so im good there but my one question that even nextjs is startled and not answered me yet on reddit was
    why did you guys deprecate
    import {useRouter} from 'next/router'
    const router = useRouter();
    console.log(router.route)
    no answer until now
    Also you missed out on New MetaDataApi next/headers etc but overall master these and you pretty much have nextjs 14 in a nutshell

  • @aryanrahman3212
    @aryanrahman3212 Месяц назад

    Can you tell me which section of the docs mentions the fix for having a child component with a fetch statement?

  • @Deus-lo-Vuilt
    @Deus-lo-Vuilt Месяц назад +1

    thanks

  • @Gaijin101
    @Gaijin101 10 дней назад

    Next has one of the most confusing APIs on the market, and people still use it. Its wild.

  • @sandeepreddy6247
    @sandeepreddy6247 26 дней назад +1

    it's just simply masterclass..........