Learn Next.js Parallel Routes In 16 Minutes

Next.js + React Course: reactsimplified.com/?...
The app directory massively overhauled and improved routing in Next.js by adding tons of new advanced features. One of those features is parallel routes which make working with complex UIs that contain many unique elements much easier. In this video I will break down everything you need to know about this concept and also talk about what this concept can do for you.
📚 Materials/References:
Next.js + React Course: reactsimplified.com/?...
🌎 Find Me Here:
My Blog: blog.webdevsimplified.com
My Courses: courses.webdevsimplified.com
Patreon: / webdevsimplified
Twitter: / devsimplified
Discord: / discord
GitHub: github.com/WebDevSimplified
CodePen: codepen.io/WebDevSimplified
⏱️ Timestamps:
00:00 - Introduction
00:55 - Parallel Route Basics
05:18 - Conditional Route Rendering
07:42 - Advanced Routing
#Nextjs #WDS #ParallelRoutes

Пікірлер: 192

  • @dawidwraga
    @dawidwraga4 ай бұрын

    Vercel needs to watch this video and improve the DX here for sure

  • @tiktalk4573

    @tiktalk4573

    12 күн бұрын

    seems very DX friendly to me!

  • @skapator
    @skapator4 ай бұрын

    Is this the birth of the term folder/file hell ?

  • @theisoj
    @theisoj4 ай бұрын

    Great video! Thanks Kyle as always! 👍

  • @mohammadahmermalick7869
    @mohammadahmermalick78694 ай бұрын

    Thanks you bro! I love your channel ❤️ You are doing a great job 👍

  • @BugsNRoses_
    @BugsNRoses_4 ай бұрын

    happy new year kyle❤

  • @sujjee
    @sujjee4 ай бұрын

    Thank you for explaining parallel routes in such a simple and easily understandable way. By the way, could you also explain Drizzle the way you explained Prisma in one hour?

  • @marcialabrahantes3369

    @marcialabrahantes3369

    2 ай бұрын

    drizzle is most like SQL. you can learn SQL and it'll transfer over pretty seamlessly

  • @code_react
    @code_react4 ай бұрын

    WOW. this is amazing to learn.

  • @adammilner4512
    @adammilner45124 ай бұрын

    this looks horrifying, so much overhead even in this super simple example

  • @untalentedwebdev

    @untalentedwebdev

    4 ай бұрын

    exactly my thots

  • @tiktalk4573

    @tiktalk4573

    12 күн бұрын

    I don't agree

  • @nkululekomthimkulu1248
    @nkululekomthimkulu12484 ай бұрын

    Looks cool. I'll try it out.

  • @wchorski
    @wchorski4 ай бұрын

    would love a talk on how to create a template app that is shared between multiple clients. With tips on how to handle 1. unique assets 2. customer side configuration 3. adding and pushing updates across all instances of this app

  • @FerroMeow
    @FerroMeow4 ай бұрын

    Such a cool feature, I love this!

  • @adammilner4512

    @adammilner4512

    4 ай бұрын

    useless feature lol

  • @berniko4954

    @berniko4954

    3 ай бұрын

    @@adammilner4512 ikr lol

  • @tom.watkins
    @tom.watkins3 ай бұрын

    The main benefit of this is being able to use the loading and error pages within each parallel route i am guessing. For most cases its fine to just import the server components, you hust have to remember to put your own suspense/error boundaries around them

  • @chrtravels

    @chrtravels

    2 ай бұрын

    I was wondering why this would be necessary when you could just import server components. This makes sense though. I could see the benefit of having the separate loading and error pages. I am not very familiar with using suspense/error boundaries, so that is something I need to delve into.

  • @tom.watkins

    @tom.watkins

    2 ай бұрын

    @@chrtravels loading and error pages are just a nice abstraction over having to put in your own suspense and error boundaries so it's a nice DX improvement for people less comfortable using them. That being said, it's worth knowing how to use them yourself as Suspense in particular is usefulfor other things in react, things like lazy imports and the new 'use' hook with promises as props both work very nicely with Suspense

  • @theavazov
    @theavazov4 ай бұрын

    Great video Kyle, can you make a video about i18 in app routes?

  • @otn987
    @otn9874 ай бұрын

    The conditional rendering works the same way using parallel routes or not with slightly different syntax. if(!isLoggedIn) return Vs. if(!isLoggedIn) return login. Am I missing something?

  • @planesrift
    @planesrift4 ай бұрын

    Top notch developer experience.

  • @ddrweb_
    @ddrweb_4 ай бұрын

    Hi, thanks for the video. I have a question tho, If I create a route with parallel routes, why do I need to declare/create the parallel routes for my nested pages, maybe I want them just for the main parent , feels a bit weird :|

  • @whoman7930

    @whoman7930

    4 ай бұрын

    Yeah, that's really odd. I always have to add a default page that returns null to counter that. 🥲

  • @anhvuuc8693
    @anhvuuc86934 ай бұрын

    This still easy, Intercepting Routes is an headache :D Hope you can have a video for it

  • @bayuputraefendi4717
    @bayuputraefendi47174 ай бұрын

    Thanks, now i can improve my code

  • @nguyenchin7798
    @nguyenchin7798Ай бұрын

    thank you !!!

  • @nemeziz_prime
    @nemeziz_prime4 ай бұрын

    Can you also do a simple video on subdomain routing in React/Next.js?

  • @kellingtoncrivelaro3929

    @kellingtoncrivelaro3929

    4 ай бұрын

    Would love It too

  • @user-ej8zb7id8v
    @user-ej8zb7id8v12 күн бұрын

    Anyone know if it's possible to have a wrapper layout or page to pass in props to the slots? The use case if there was interactivity outside of the parallel routes that can show/hide a particular slot from a button click.

  • @WARE_DOG
    @WARE_DOG4 ай бұрын

    Bro, can you teach how to setup folder, to use StyleXjs with nodejs.

  • @firewatermoonsun
    @firewatermoonsun3 ай бұрын

    What if I don't want User Settings and Article Settings but just want /dashboard/settings with Settings folder?

  • @VinayTandale
    @VinayTandale4 ай бұрын

    Its being complicated day by day easier the simpler the better

  • @RadianRasyid
    @RadianRasyid3 ай бұрын

    i dont't know im not able to use parallel route just like how you do it. it worked for the root layout, but not for the nested route. i'm using nextjs version 14.1. maybe a little help?

  • @chrtravels
    @chrtravels2 ай бұрын

    The docs aren't clear but it sounds like the parallel route has to be a server component. I have a PostList server component, that I could turn into a parallel route, however I have a PostCard, which is imported into the PostList. The PostCart is a client component. So I would not be able to use the Parallel routing on the cards themselves? It's the cards that I would want to have the loading state on.

  • @aravind.a
    @aravind.a4 ай бұрын

    what is the advantage of this? We can also use swr to load each content on page.

  • @donaldpetervicente8351
    @donaldpetervicente83514 ай бұрын

    Hi Kyle how do you do the shortcut to instantly imported the red tagging(error)(wait) that is not manually imported? what is the shortcut key? Thanks in advance.

  • @debopamgupta9505

    @debopamgupta9505

    4 ай бұрын

    Ctrl + . Will bring up the code actions in vscode which has many options, here you have the option to auto import the function

  • @donaldpetervicente8351

    @donaldpetervicente8351

    4 ай бұрын

    @@debopamgupta9505 Many thanks bro!😁

  • @movoyemickele
    @movoyemickele4 ай бұрын

    Hey Kyle, I'm curious if there's a method to eliminate the loading time experienced when navigating between pages in NextJS. I'm aiming to develop a Progressive Web App, but I've noticed that NextJS fetches each page from the server based on the URL, leading to some delay. This contrasts with React Router, where page transitions are nearly instantaneous since it doesn't require fetching the new page for every navigation. Is there a workaround or solution for this in NextJS? I almost think NextJS sucks for PWA.

  • @vivekkaushik9508

    @vivekkaushik9508

    4 ай бұрын

    PWA and SSR doesn't make sense. In order for an app to be PWA you've to make the app CSR so that client can download the entire app and run it offline

  • @movoyemickele

    @movoyemickele

    4 ай бұрын

    @@vivekkaushik9508 Do you have any insights on implementing this in NextJS? Simply specifying 'use client' doesn't work, as the app's router is designed to deliver individual pages for each specified URL. I'm looking to enable the user to download the entire app, similar to the experience with plain React where the user downloads the entire app. Any suggestions?

  • @twothreeoneoneseventwoonefour5

    @twothreeoneoneseventwoonefour5

    4 ай бұрын

    @@movoyemickele why are you even using nextjs then. That's like buying a car to go to a store 100m from your home. Use Vite instead for your purposes.

  • @jaspreetmaan121

    @jaspreetmaan121

    4 ай бұрын

    ​@@movoyemickele if you don't use ssr, don't use next js

  • @acousticmunda6400

    @acousticmunda6400

    4 ай бұрын

    @@movoyemickele just use "use client" in the parent layout file

  • @johnsimms9875
    @johnsimms98754 ай бұрын

    What are the benefits of doing it this way? Is it faster/more performant?

  • @jessyndaya9487
    @jessyndaya94874 ай бұрын

    It's too much for nothing my friend 😅

  • @Goofy8907
    @Goofy890716 күн бұрын

    Is the purpose of this to increase app performance or just to improve the dev experience?

  • @havokgames8297
    @havokgames8297Ай бұрын

    This video did a good job of _how_ these works. But I really can't tell the _why_, because the examples are so generic. Is this useful for a multi-panel layout where you navigate within the panels separately? Maybe something like a playlist + music player?

  • @user-ur9wf9tg5p
    @user-ur9wf9tg5p4 ай бұрын

    Thank you for the explanation on parallel routes. However, I was wondering if you could possibly show me what the code in the 'wait' function, which is located in the 'lib' folder, looks like? I would appreciate your help.

  • @BradenKelley

    @BradenKelley

    4 ай бұрын

    probably just something like `const wait = (ms: number) => new Promise(resolve => setTimeout(resolve, ms))`

  • @user-ur9wf9tg5p

    @user-ur9wf9tg5p

    4 ай бұрын

    @@BradenKelley Your answer helped me understand it better. I appreciate your assistance.

  • @Slaat1
    @Slaat13 ай бұрын

    10:40 thank you for touching on this! It's a shame this is so buggy in dev

  • @ahmadmuqadas78
    @ahmadmuqadas783 ай бұрын

    i love your hiar bro

  • @KnaveKaiser
    @KnaveKaiser4 ай бұрын

    thank you for the great video. can you make a video demystifying internationalization in the next js 13 using app router? I'm having a hard time setting it up in a way where the default locale does not pollute the url. thanks again.

  • @carlosbotero1947

    @carlosbotero1947

    4 ай бұрын

    There is a really cool library called "next-roots" that have a great i18n solution .

  • @ismaeltinta6118

    @ismaeltinta6118

    4 ай бұрын

    +1

  • @RealRhythmandPoetry

    @RealRhythmandPoetry

    4 ай бұрын

    Can't remember how but I got it working with i18next and some youtube guides a while ago :)

  • @boglegogle

    @boglegogle

    4 ай бұрын

    Using i18Next, super easy to set up and works great. The default locale doesn't show up in the route and next handles all routing for you so if you never have to specify locale routes, it just does it

  • @raphaelpicard8981
    @raphaelpicard89814 ай бұрын

    Hello, I wanted to know if with your videos there is the possibility to put subtitles in French?

  • @unajujupiter6725
    @unajujupiter6725Ай бұрын

    unable apply conditional routes to home page, i guess the layout for home page is RootLayout which is a little bit different, anyone have done it before? just wondering.

  • @milan5131
    @milan51314 ай бұрын

    3:37 react has type for ts that makes it simpler to define types where u want to use children so you don't need to define type for children: PropsWithChildren

  • @ikbo
    @ikbo4 ай бұрын

    Why does the course say "next.js coming soon"? Has it not been released yet?

  • @Daddyjs
    @Daddyjs3 ай бұрын

    You are a Next js GOD

  • @lasindunuwanga5292
    @lasindunuwanga52923 ай бұрын

    It is today I got it. Your channel name is real. It is not just a fancy name. You really make stuff simplified.

  • @cqz89
    @cqz8912 күн бұрын

    App routers will add extra json at the end of your html, double page size, the response time is slower than page router.

  • @thomasmiller1406
    @thomasmiller14064 ай бұрын

    Cool, would be nice if there was away to define common children compents like loading and error. Personally i prefer this over being verbose but not going to lie running in dev mode looked absolutely horrendous!

  • @mahadevovnl
    @mahadevovnl4 ай бұрын

    You can change the indentation of your file tree on the left in VSCode, could you please do that? The default 2px indentation is horrible and makes it hard to see what folder is inside what folder.

  • @Henrique01010
    @Henrique010103 ай бұрын

    You did an amazing job explaining this. It looks like a clever way to place multiple server components in a single page, until it doesnt. It gets annoying really fast with the nested files and development mode gets super buggy. I cant believe Next is releasing this, the framework was once an example of great DX...

  • @user-sc2dc4ud7b
    @user-sc2dc4ud7b4 ай бұрын

    You can name pages components with different names other than just "Page"?!

  • @user-ye2fw4do4d
    @user-ye2fw4do4d3 ай бұрын

    Can you make a video on how to create 2 diferent set of pages with same names but for mobile and for desktop so we don't need to have code mixed can have 2 diferent routing and as a plus if theres a way to make url only show main donain feven being in pages like maindomain/blog but i just see maindomain I was trying to do sometihng likes this App [...mobile] to catch all mobile (mobile) to group all mobile and create an invisible /mobile page.tsx store page.tsx page.tsx layout.tsx inside layout my idea was create an const isMobile = window.innerWidth

  • @MrAlao675
    @MrAlao6754 ай бұрын

    One of the turn offs here is restarting dev server. Well I don't have a use for the complicated parallel routing for now😊

  • @a_m___s_y
    @a_m___s_y3 ай бұрын

    Parallel routing is powerful, but it's absolutely annoying when use it in development mode. Go through the document many times and finally find out the issue only exist in development mode from your video... thanks for your video

  • @okopyl
    @okopyl3 ай бұрын

    I did not understand a thing. Isn't it true that a route sits on a separate url? 1. Why do you render everything on one page? 2, How is it possible to have a parallel routes if a route is always loaded one at a time. If you have 2 route on the same route, ut's just a plain component, not?

  • @griffadev
    @griffadev4 ай бұрын

    Tried using this feature and had to back it out because its so unstable (for the more advanced uses ) the fact it's so buggy in the tutorial only proves this

  • @N8X4TE
    @N8X4TE4 ай бұрын

    What is a good use case for this?

  • @DavidSmith-ef4eh

    @DavidSmith-ef4eh

    4 ай бұрын

    Making developers switch to vue or svelte, I guess...

  • @N8X4TE

    @N8X4TE

    4 ай бұрын

    @@DavidSmith-ef4eh fr

  • @berniko4954

    @berniko4954

    3 ай бұрын

    @@DavidSmith-ef4eh lol thats why I switched to sveltekit, but then switched back after a month because uk,I do not want to be a broke

  • @saudalghamdi5608
    @saudalghamdi56084 ай бұрын

    Hi Kyle, when are you going to launch the Next.js course? I'm thinking about learning Next.js and there is no better teacher in the JavaScript world than you!

  • @TabuHana

    @TabuHana

    4 ай бұрын

    Its in the description

  • @WebDevSimplified

    @WebDevSimplified

    4 ай бұрын

    It will most likely be this month

  • @shawnxiong2011
    @shawnxiong2011Ай бұрын

    This nextjs dark magic is overcooked

  • @kenshinhimura3140
    @kenshinhimura31404 ай бұрын

    I mean that the component folder in react is dead because now every pages have his folder component.

  • @naufalnasrullah6965
    @naufalnasrullah69654 ай бұрын

    7:29 insert a login page inside of dashboard isn't good idea, it should have its route alone

  • @dextrox2698
    @dextrox26982 ай бұрын

    This feature may seems useless to some ppl but along the line it comes to tackle some problems i.e intercepting routine

  • @alirezak5870
    @alirezak5870Ай бұрын

    even if you use middle wares and auth packages on this feature you get in trouble more because slots children or any props you are passing in your layout don't work as you expected. and your route system completely make parallel bugs.

  • @TeaBroski
    @TeaBroski4 ай бұрын

    Like this if you appreciate Kyle's content but need to 1.5x to not follow asleep

  • @rodrigocremella
    @rodrigocremella4 ай бұрын

    Great video. But I decided to skip Next JS only because the server error on each render/code change 🤧

  • @bpaintx2

    @bpaintx2

    4 ай бұрын

    Sounds like a code problem, not a Next JS problem ;)

  • @boglegogle

    @boglegogle

    4 ай бұрын

    That means you have an error... Next js hot loading works just fine

  • @DespicariPirates
    @DespicariPirates4 ай бұрын

  • @jacobphillips9235
    @jacobphillips92354 ай бұрын

    Thanks!

  • @WebDevSimplified

    @WebDevSimplified

    2 ай бұрын

    You're welcome! I am glad you enjoyed the video.

  • @ionutsandu5913
    @ionutsandu59134 ай бұрын

    How is this a benefit over just creating components and conditionally render them?

  • @Rkdo_Dev

    @Rkdo_Dev

    3 ай бұрын

    in this point of time, nothing.

  • @Slaat1
    @Slaat13 ай бұрын

    6:41 I know you wanted to give a good example but this isn't one, authentication should be handled in the middleware. you could have checked for user role and displayed different components

  • @Dylan_thebrand_slayer_Mulveiny
    @Dylan_thebrand_slayer_Mulveiny4 ай бұрын

    2:00 why would they inject HTML into the suspense component as a property. Shouldn't that be a slot instead? That seems incredibly bad to me. I can't possibly think of a legitimate reason to do it that way.

  • @Niksorus
    @Niksorus4 ай бұрын

    Hot damn, yet another way to do the exact same thing 🤣

  • @abubakarkhawaja6082
    @abubakarkhawaja608224 күн бұрын

    sounds like a video for "why you shouldn't use Parallel routes in Next.js"

  • @lcarv20
    @lcarv204 ай бұрын

    The dx looks awful. Having to restart the dev server frequently is annoying, not to mention the dev glitches that I have already spent hours trying to fix thinking it was a problem with my code.

  • @faizsyed658

    @faizsyed658

    4 ай бұрын

    True. Classic front end bloat

  • @yashyadav5116
    @yashyadav51164 ай бұрын

    parallel routing

  • @hellokevin_133
    @hellokevin_1334 ай бұрын

    I respect you and appreciate the work you put into your courses, but given the quality of the recent React & Next docs, I think it'd be silly to take a course or look elsewhere for learning these technologies.

  • @ts3798

    @ts3798

    4 ай бұрын

    No offense, but this is a stupid comment. A lot of people prefer to learn by watching videos.

  • @GermansEagle

    @GermansEagle

    4 ай бұрын

    I disagree. The documentation says how things are. The course is using it in a professional manner. There was docs on react hooks, but his course changed how to actually use them.

  • @DavidSmith-ef4eh
    @DavidSmith-ef4eh4 ай бұрын

    Great. I always wanted to restart my env after a change. Nextjs is really pushing things further...

  • @yashyadav5116
    @yashyadav51164 ай бұрын

    learn by doing

  • @user-ud4bj9vc7l
    @user-ud4bj9vc7l3 ай бұрын

    NEED MORE FILES

  • @DannyBLV
    @DannyBLV3 ай бұрын

    all these issues in dev mode doesn't worry anyone here ?

  • @0xAndy
    @0xAndy4 ай бұрын

    Thoughts on Parallel Routing in Next 👎 too much boilerplate 👎too buggy in dev (barely usable at times) 👎not ready for prod. Next should improve the DX immediately before pushing this further

  • @DavidSmith-ef4eh

    @DavidSmith-ef4eh

    4 ай бұрын

    Just look how many files he had to create. And we all know that creating files is the slowest part of developing :D

  • @justafreak15able
    @justafreak15able4 ай бұрын

    Bro just rediscovered Components 😂

  • @elephant_888
    @elephant_8884 ай бұрын

    Way too many abstractions. This makes me so happy I’m learning HTMX!! We’ve really gone crazy with the frontend frameworks. 😅

  • @DavidSmith-ef4eh

    @DavidSmith-ef4eh

    4 ай бұрын

    Crazy. I wanted to switch my teams project to the new app dir structure, but I guess we'll just stay with pages forever.

  • @DaviAreias

    @DaviAreias

    4 ай бұрын

    I started using nextjs on my journey but then changed to rust+ vite on the frontend and reduce ram usage from 100~120 MB to less than 10MB, that was before the newer nextjs versions btw

  • @DavidSmith-ef4eh

    @DavidSmith-ef4eh

    4 ай бұрын

    @@DaviAreias learning rust as well, but doubt i will push it in my company. It just makes no sense for them, since the bottleneck are the connection speeds and our database. but I will certainly use it for my own project. Don't know about vue though, react has a great ecosystem.

  • @rishiraj2548
    @rishiraj25484 ай бұрын

    🙏👍

  • @kerovinvillegas6402
    @kerovinvillegas64024 ай бұрын

    Im not really fan of this feature. Just dont overthink things. You can create this "parallel" with simple container component with less complicated pre-requirements.

  • @avijitchanda7944
    @avijitchanda79444 ай бұрын

    I don't find anything good in this use case also don't know what next js trying to do 😅😅😅 I love pages even more

  • @rahilansari261
    @rahilansari2613 ай бұрын

    Why can't we just render components rather creating parallel route

  • @InsidiousGT
    @InsidiousGT3 ай бұрын

    This looked cool until the advanced routing section. DX took a nosedive at that point, should've left the feature off until the DX is baked

  • @Caldaron
    @Caldaron4 ай бұрын

    another "stable" feature of app router...

  • @josephmgift
    @josephmgift4 ай бұрын

    🎉

  • @user-ei7dg6dw6i
    @user-ei7dg6dw6i9 күн бұрын

    イケメン

  • @penyintastoxic
    @penyintastoxic4 ай бұрын

    I still dont understand how this feature will useful for my project

  • @ruanxun9454
    @ruanxun945425 күн бұрын

    Anyone having a real life use case using parallel routes?

  • @amined801
    @amined8014 ай бұрын

    this is nice, but i think it's better to go with Laravel (Laravel ecosystem provide you everything you need depends on your project) instead of try to learn every next js new feature which maybe will change in future again haha

  • @bpaintx2

    @bpaintx2

    4 ай бұрын

    So Laravel never updates?

  • @amined801

    @amined801

    4 ай бұрын

    @@bpaintx2 they do but they don't change everything

  • @maykon-oliveira
    @maykon-oliveira3 ай бұрын

    You speak so fast 🥲

  • @DoItWithADance
    @DoItWithADance3 ай бұрын

    What a complete mess, I fail to see how this is simplifying my app code except bloating it. Perhaps it has uses in larger app code bases?

  • @anthonyvolquez9514
    @anthonyvolquez95144 ай бұрын

    first comment!

  • @vrushankgajula4584

    @vrushankgajula4584

    4 ай бұрын

    first reply

  • @bpaintx2

    @bpaintx2

    4 ай бұрын

    Boooooo

  • @elpolodiablo5486
    @elpolodiablo54864 ай бұрын

    Its better to use vanilla react with react router and vite then using buggy and slow nextjs.

  • @Marcosmapf
    @Marcosmapf4 ай бұрын

    So much complexity noise from the technology itself, looks so clunky to use

  • @CodingWithMrM
    @CodingWithMrM4 ай бұрын

    I don’t think it’s useful as we’re already gonna have each route for each feature

  • @jatul28
    @jatul284 ай бұрын

    Why it's so much overly complex

  • @DavidSmith-ef4eh
    @DavidSmith-ef4eh4 ай бұрын

    Next.js is getting out of hand. Formerly you could use code from your create-react-app SPA or client side rendered page, create a few files in the pages directory and call it a day. Now they want you to create millions of files, folders, subfolders. Never going to use app way. If they ditch pages, I'll replace the framework.

  • @Munja12

    @Munja12

    3 ай бұрын

    And not have SEO with SPA create-react-app.

  • @cb73
    @cb734 ай бұрын

    It seems like this was a solution in search of a problem. And overly complicated and buggy for little to no benefit.

  • @x911
    @x9113 ай бұрын

    This looks so buggy, definitely not production ready