Bird
Raised Fist0
NextJSframework~10 mins

Parallel routes concept in NextJS - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Parallel routes concept
User navigates to URL
↓
Next.js Router checks routes
↓
Identify parallel routes in layout
↓
Render multiple route segments simultaneously
↓
Combine segments into final page
↓
Display combined UI to user
Next.js checks the URL, finds parallel routes, renders them at the same time, and combines them into one page.
Execution Sample
NextJS
export default function Page() {
  return (
    <div style={{ display: 'flex', gap: '1rem' }}>
      <Sidebar />
      <Content />
    </div>
  )
}
This code illustrates the final combined UI from parallel routes in Next.js, rendering Sidebar and Content side by side.
Execution Table
StepActionRoute SegmentRender ResultCombined UI
1User navigates to /dashboardN/AN/AN/A
2Router identifies parallel routessidebar and contentSidebar component renderedSidebar shown
3Router renders content routecontentContent component renderedSidebar and Content shown
4Combine sidebar and contentsidebar + contentBoth renderedSidebar and Content shown side by side
5Display final pagefull pageComplete UI renderedUser sees combined layout
💡 All parallel routes rendered and combined, page fully displayed.
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4Final
sidebarRenderedfalsetruetruetruetrue
contentRenderedfalsefalsetruetruetrue
combinedUIemptySidebar onlySidebar + ContentSidebar + ContentSidebar + Content
Key Moments - 2 Insights
Why do sidebar and content render separately but show together?
Because Next.js renders each parallel route segment independently (see steps 2 and 3), then combines them into one UI (step 4).
What happens if one parallel route fails to render?
The combined UI will miss that segment, so the page might look incomplete. Next.js tries to render all segments before showing the page (see step 4).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, at which step does the content route render?
AStep 2
BStep 3
CStep 4
DStep 5
💡 Hint
Check the 'Route Segment' and 'Render Result' columns in step 3.
According to variable_tracker, when is sidebarRendered true?
AAfter Step 2
BAfter Step 1
CAfter Step 3
DAfter Step 5
💡 Hint
Look at the sidebarRendered row and its value after each step.
If the content route did not render, how would combinedUI look after Step 4?
AContent only
BEmpty
CSidebar only
DSidebar and Content
💡 Hint
Refer to combinedUI values in variable_tracker after Step 4.
Concept Snapshot
Parallel routes let Next.js render multiple parts of a page at once.
Each route segment renders independently.
Segments combine into one UI before display.
Use parallel routes to build layouts with sidebars, modals, or tabs.
This improves user experience by loading parts simultaneously.
Full Transcript
In Next.js, parallel routes allow rendering multiple route segments at the same time. When a user navigates to a URL, the router identifies which parts of the page come from parallel routes. It renders each segment independently, like a sidebar and main content. Then, Next.js combines these segments into one complete page and shows it to the user. This approach helps build complex layouts that load faster and feel smoother. The execution table shows each step: navigation, rendering sidebar, rendering content, combining, and final display. Variables track which parts have rendered and how the UI builds up. Common confusions include why segments render separately but show together, and what happens if one segment fails. Visual quizzes help check understanding of when each segment renders and how the combined UI forms.

Practice

(1/5)
1. What is the main purpose of parallel routes in Next.js?
easy
A. To disable navigation between pages
B. To load pages sequentially one after another
C. To replace client-side routing with server-side only
D. To display multiple parts of a page simultaneously

Solution

  1. Step 1: Understand what parallel routes do

    Parallel routes allow showing multiple UI sections at the same time on a page.
  2. Step 2: Compare options with this understanding

    Only To display multiple parts of a page simultaneously correctly describes this purpose; others describe unrelated behaviors.
  3. Final Answer:

    To display multiple parts of a page simultaneously -> Option D
  4. Quick Check:

    Parallel routes = show multiple parts [OK]
Hint: Parallel routes show multiple page parts at once [OK]
Common Mistakes:
  • Thinking parallel routes load pages one after another
  • Confusing parallel routes with disabling navigation
  • Assuming parallel routes replace client-side routing
2. Which folder naming pattern is used to define a parallel route in Next.js?
easy
A. Using parentheses like (route)
B. Using square brackets like [route]
C. Using curly braces like {route}
D. Using angle brackets like <route>

Solution

  1. Step 1: Recall folder naming for parallel routes

    Next.js uses parentheses around folder names to mark parallel routes.
  2. Step 2: Match options to this rule

    Only Using parentheses like (route) uses parentheses, which is correct for parallel routes.
  3. Final Answer:

    Using parentheses like (route) -> Option A
  4. Quick Check:

    Parallel routes folder = parentheses [OK]
Hint: Parallel routes folders use parentheses ( ) [OK]
Common Mistakes:
  • Using square brackets which are for dynamic routes
  • Confusing with curly braces or angle brackets
  • Not using any special characters for parallel routes
3. Given this folder structure in Next.js:
app/
  (sidebar)/
    page.jsx
  (content)/
    page.jsx
  layout.jsx

What will happen when the app renders layout.jsx with parallel routes?
medium
A. Both sidebar and content pages render side by side inside layout
B. Only the sidebar page renders, content is ignored
C. Only the content page renders, sidebar is ignored
D. Neither sidebar nor content pages render automatically

Solution

  1. Step 1: Understand parallel routes folder names

    Folders named with parentheses define parallel routes that render simultaneously.
  2. Step 2: Apply to given structure

    Both (sidebar) and (content) are parallel routes, so their pages render side by side inside layout.
  3. Final Answer:

    Both sidebar and content pages render side by side inside layout -> Option A
  4. Quick Check:

    Parallel routes render all named folders simultaneously [OK]
Hint: Parentheses folders render together inside layout [OK]
Common Mistakes:
  • Thinking only one parallel route renders at a time
  • Assuming parallel routes need manual import to render
  • Confusing parallel routes with nested routes
4. You have this code in your layout.jsx to render parallel routes:
import { Slot } from 'next/navigation';

export default function Layout() {
  return (
    
<Slot name="sidebar" /> <Slot name="content" />
); }

Why does this code cause an error?
medium
A. Because Slot must be imported from 'next/navigation' as a named import
B. Because <Slot /> should be self-closing JSX tags, not string literals
C. Because parallel routes cannot use Slot components
D. Because Slot requires a default export, not named

Solution

  1. Step 1: Check JSX syntax in return statement

    The code uses <Slot name="sidebar" /> as a string literal, not as JSX tags.
  2. Step 2: Correct JSX usage

    It should be <Slot name="sidebar" /> without quotes, as a self-closing JSX component.
  3. Final Answer:

    Because <Slot /> should be self-closing JSX tags, not string literals -> Option B
  4. Quick Check:

    JSX tags must not be strings [OK]
Hint: Use JSX tags, not strings, for [OK]
Common Mistakes:
  • Writing JSX tags as strings inside return
  • Importing Slot incorrectly
  • Thinking Slot can't be used in parallel routes
5. You want to create a page with a sidebar and main content using parallel routes. Which folder structure and code snippet correctly implements this in Next.js?
app/
  (sidebar)/
    page.jsx
  (main)/
    page.jsx
  layout.jsx

And in layout.jsx:
export default function Layout() {
  return (
    
{/* What goes here? */}
); }
hard
A. <Slot />
B. <Slot name="content" /> <Slot name="sidebar" />
C. <Slot name="sidebar" /> <Slot name="main" />
D. <Outlet name="sidebar" /> <Outlet name="main" />

Solution

  1. Step 1: Match folder names to Slot names

    Folders are named (sidebar) and (main), so Slots must use these exact names.
  2. Step 2: Check code snippet for correct Slot usage

    <Slot name="sidebar" /> <Slot name="main" /> uses <Slot name="sidebar" /> and <Slot name="main" />, matching folder names and correct JSX syntax.
  3. Final Answer:

    <Slot name="sidebar" /> <Slot name="main" /> -> Option C
  4. Quick Check:

    Slot names = folder names [OK]
Hint: Slot names must match parallel route folder names [OK]
Common Mistakes:
  • Using wrong Slot names that don't match folders
  • Using instead of
  • Using only one Slot for multiple parallel routes
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard