Bird
Raised Fist0
NextJSframework~20 mins

Intercepting routes (.) in NextJS - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Intercepting Routes Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What happens when navigating to an intercepting route?
Consider a Next.js app with an intercepting route defined as (dashboard)/settings. What will the user see when navigating to /dashboard/settings?
NextJS
app/(dashboard)/layout.tsx
export default function DashboardLayout({ children }) {
  return (
    <div>
      <h1>Dashboard</h1>
      {children}
    </div>
  )
}

app/(dashboard)/settings/page.tsx
export default function Settings() {
  return <p>Settings Page</p>
}
AOnly 'Dashboard' heading is shown, 'Settings Page' content is missing.
BOnly 'Settings Page' is shown, 'Dashboard' heading is not rendered.
CThe app throws a 404 error because intercepting routes are not supported.
DThe page shows 'Dashboard' heading and below it 'Settings Page' content.
Attempts:
2 left
💡 Hint
Think about how layouts wrap their children in Next.js app router.
📝 Syntax
intermediate
1:30remaining
Identify the correct intercepting route syntax
Which of the following folder names correctly defines an intercepting route in Next.js app router?
A(admin)/users
B[admin]/users
C{admin}/users
D<admin>/users
Attempts:
2 left
💡 Hint
Intercepting routes use parentheses in folder names.
🔧 Debug
advanced
2:30remaining
Why does this intercepting route fail to render nested content?
Given this layout code, why does the nested page content not appear? app/(main)/layout.tsx export default function MainLayout({ children }) { return
Main Layout
} app/(main)/profile/page.tsx export default function Profile() { return

Profile Page

}
AThe layout does not render {children}, so nested pages have no place to appear.
BThe folder name (main) is invalid for layouts.
CThe profile page must be named index.tsx to render inside layout.
DLayouts cannot be used inside intercepting routes.
Attempts:
2 left
💡 Hint
Check what the layout returns in its JSX.
❓ state_output
advanced
2:30remaining
What is the rendered output with parallel intercepting routes?
Consider this folder structure: app/(dashboard)/page.tsx app/(dashboard)/settings/page.tsx app/(dashboard)/(notifications)/page.tsx Navigating to /dashboard/(notifications) renders which content?
ADashboard, settings, and notifications pages are all shown simultaneously.
BBoth dashboard and notifications page content are shown, but settings page is hidden.
COnly the notifications page content is shown inside the dashboard layout.
DA 404 error occurs because parallel routes require special syntax.
Attempts:
2 left
💡 Hint
Parallel routes allow multiple UI sections to render at once.
🧠 Conceptual
expert
3:00remaining
What is the main benefit of using intercepting routes in Next.js?
Why would a developer choose to use intercepting routes in a Next.js app instead of traditional nested routes?
ATo disable client-side navigation and force full page reloads.
BTo automatically generate API routes alongside pages without extra configuration.
CTo enable rendering multiple UI sections in parallel without changing the URL structure.
DTo enforce strict URL patterns that prevent dynamic routing.
Attempts:
2 left
💡 Hint
Think about UI flexibility and URL management.

Practice

(1/5)
1. What is the main purpose of intercepting routes in Next.js App Router?
easy
A. To force server-side rendering on every route
B. To reload the entire page on every navigation
C. To disable client-side navigation
D. To add UI parts without leaving the current page

Solution

  1. Step 1: Understand intercepting routes concept

    Intercepting routes allow adding UI parts while staying on the same page, avoiding full reloads.
  2. Step 2: Compare options with concept

    Options suggesting page reloads, disabling navigation, or forcing server-side rendering contradict the idea of smooth UI updates without full reloads.
  3. Final Answer:

    To add UI parts without leaving the current page -> Option D
  4. Quick Check:

    Intercepting routes = add UI parts without leaving page [OK]
Hint: Intercepting routes keep you on the page while adding UI [OK]
Common Mistakes:
  • Thinking intercepting routes reload the whole page
  • Confusing intercepting routes with disabling navigation
  • Assuming intercepting routes force server rendering
2. Which folder name syntax is used to create an intercepting route in Next.js App Router?
easy
A. @modal
B. modal
C. (modal)
D. [modal]

Solution

  1. Step 1: Recall folder naming for intercepting routes

    Intercepting routes use parentheses around folder names, like (modal), to mark them as intercepting.
  2. Step 2: Evaluate options

    (modal) uses parentheses correctly. @modal uses @ for parallel routes, modal omits parentheses for regular routes, and [modal] uses square brackets for dynamic routes.
  3. Final Answer:

    (modal) -> Option C
  4. Quick Check:

    Intercepting route folder = parentheses [OK]
Hint: Intercepting routes use (folderName) syntax [OK]
Common Mistakes:
  • Using square brackets instead of parentheses
  • Omitting parentheses for intercepting routes
  • Confusing @ folders with intercepting route folders
3. Given this folder structure in Next.js App Router:
app/(modal)/page.tsx
What happens when you navigate to a route inside (modal)?
medium
A. The modal UI appears without leaving the current page
B. The entire page reloads and shows only the modal content
C. Navigation fails with a 404 error
D. The modal opens in a new browser tab

Solution

  1. Step 1: Understand intercepting route behavior

    Routes inside (modal) folders add UI parts like modals without leaving the current page.
  2. Step 2: Analyze navigation effect

    Navigation triggers modal UI overlay, not a full page reload or error.
  3. Final Answer:

    The modal UI appears without leaving the current page -> Option A
  4. Quick Check:

    Navigation in (modal) = modal UI without reload [OK]
Hint: Routes in (modal) show UI without page reload [OK]
Common Mistakes:
  • Expecting full page reload on modal route
  • Thinking navigation causes errors
  • Assuming modal opens in new tab
4. You wrote this intercepting route folder: app/@(sidebar)/page.tsx. Why does it cause a build error?
medium
A. Parentheses cannot be combined with @ in folder names
B. The folder name must be all lowercase
C. You need to add a layout.tsx file inside the folder
D. The file extension should be .jsx, not .tsx

Solution

  1. Step 1: Check folder naming rules for intercepting routes

    Parentheses indicate intercepting routes; @ folders are separate special folders. Combining them is invalid syntax.
  2. Step 2: Identify cause of build error

    Using @(sidebar) mixes two folder naming conventions, causing build failure.
  3. Final Answer:

    Parentheses cannot be combined with @ in folder names -> Option A
  4. Quick Check:

    Invalid folder name combining ( ) and @ causes error [OK]
Hint: Don't mix ( ) and @ in folder names [OK]
Common Mistakes:
  • Thinking lowercase folder name fixes error
  • Assuming missing layout.tsx causes build error
  • Confusing file extension with folder naming
5. You want to show a sidebar UI on some pages without leaving the current page. Which folder structure correctly implements this intercepting route in Next.js App Router?
hard
A. app/(sidebar)/page.tsx without layout.tsx
B. app/(sidebar)/page.tsx with a layout.tsx inside (sidebar) wrapping children
C. app/@sidebar/page.tsx with page.tsx only
D. app/sidebar/page.tsx with a layout.tsx inside sidebar wrapping children

Solution

  1. Step 1: Identify correct intercepting route folder

    Using parentheses (sidebar) marks it as an intercepting route folder.
  2. Step 2: Confirm layout usage for UI wrapping

    Adding layout.tsx inside (sidebar) allows wrapping children with sidebar UI, enabling partial UI updates.
  3. Step 3: Evaluate other options

    app/sidebar/page.tsx with a layout.tsx inside sidebar wrapping children lacks parentheses, so it's a normal route. app/@sidebar/page.tsx with page.tsx only uses @ which is for special folders, not intercepting routes. app/(sidebar)/page.tsx without layout.tsx misses layout.tsx, so sidebar UI won't wrap children properly.
  4. Final Answer:

    app/(sidebar)/page.tsx with a layout.tsx inside (sidebar) wrapping children -> Option B
  5. Quick Check:

    Intercepting route with layout wraps UI correctly [OK]
Hint: Use (folder) plus layout.tsx to wrap UI in intercepting routes [OK]
Common Mistakes:
  • Omitting layout.tsx inside intercepting route folder
  • Using normal folder instead of (folder) for intercepting route
  • Confusing @ folders with intercepting route folders
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