Bird
Raised Fist0
NextJSframework~20 mins

Why file-based routing simplifies navigation in NextJS - Challenge Your Understanding

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
File-Based Routing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
How does Next.js file-based routing map URLs?
In Next.js, how does the file structure inside the app directory relate to the URLs users visit?
AFiles inside <code>app</code> need manual URL mapping in a config file to create routes.
BEach file or folder inside <code>app</code> automatically becomes a URL path segment matching its name.
COnly files named <code>index.js</code> inside <code>app</code> are accessible as URLs.
DNext.js ignores the <code>app</code> folder for routing and uses a separate <code>routes.js</code> file.
Attempts:
2 left
💡 Hint
Think about how folder names become parts of the website address.
❓ component_behavior
intermediate
2:00remaining
What happens when you add a new folder in Next.js app?
If you add a new folder named blog inside the app directory with a page file inside, what URL will Next.js serve for that page?
AThe page will be served at the root URL <code>/</code> ignoring the folder.
BYou must update a routing config to make <code>/blog</code> work.
CNext.js will throw an error because nested folders are not allowed.
DThe page will be served at <code>/blog</code> automatically.
Attempts:
2 left
💡 Hint
Remember how folder names become URL parts.
📝 Syntax
advanced
2:00remaining
Identify the correct file structure for nested routes
Which folder and file structure correctly creates the nested URL /products/shoes in Next.js?
A<code>app/products/shoes/page.js</code>
B<code>app/products/shoes.js</code>
C<code>app/products-shoes/page.js</code>
D<code>app/products_shoes/page.js</code>
Attempts:
2 left
💡 Hint
Folders create URL segments, files named page.js define pages.
🔧 Debug
advanced
2:00remaining
Why does this Next.js route not work as expected?
Given this folder structure:
app/blog/page.js
and inside page.js you export a React component.
Why might navigating to /blog show a 404 error?
ANext.js requires a <code>route.js</code> file inside <code>blog</code> for routing.
BThe folder <code>blog</code> must be named <code>blogs</code> to work.
CThe <code>page.js</code> file is missing the default export of a React component.
DThe <code>app</code> folder must be renamed to <code>pages</code> for routing.
Attempts:
2 left
💡 Hint
Check the component export inside the page file.
❓ state_output
expert
2:00remaining
What is the rendered output of this Next.js page component?
Consider this Next.js page component inside app/home/page.js:
export default function HomePage() {
  return (
    <main>
      <h1>Welcome</h1>
      <p>You are at /home</p>
    </main>
  )
}

What will a user see when visiting /home?
AA page with a heading 'Welcome' and a paragraph 'You are at /home'.
BA blank page because the component is missing a return statement.
CAn error because JSX tags are not allowed in Next.js page components.
DA page showing only the text '/home' without any heading.
Attempts:
2 left
💡 Hint
Look at the JSX returned by the component.

Practice

(1/5)
1. What is the main benefit of file-based routing in Next.js?
easy
A. It only works with static HTML files, not React components.
B. It automatically creates routes based on files in the pages folder.
C. It requires manual configuration of each route in a separate file.
D. It disables dynamic URL parameters for pages.

Solution

  1. Step 1: Understand file-based routing concept

    File-based routing means Next.js uses the file names in the pages folder to create website routes automatically.
  2. Step 2: Compare options with this concept

    It automatically creates routes based on files in the pages folder. matches this idea exactly. Options A, B, and D contradict the automatic and dynamic nature of file-based routing.
  3. Final Answer:

    It automatically creates routes based on files in the pages folder. -> Option B
  4. Quick Check:

    File-based routing = automatic routes [OK]
Hint: File names equal routes in Next.js [OK]
Common Mistakes:
  • Thinking routes need manual setup
  • Confusing static files with React components
  • Believing dynamic URLs are not supported
2. Which file name correctly creates a dynamic route for a user profile page in Next.js?
easy
A. userId.js
B. profile.js
C. user-profile.jsx
D. [userId].js

Solution

  1. Step 1: Identify dynamic route syntax in Next.js

    Dynamic routes use square brackets around the parameter name, like [param].js.
  2. Step 2: Match options to this syntax

    Only [userId].js uses square brackets correctly to create a dynamic route for userId.
  3. Final Answer:

    [userId].js -> Option D
  4. Quick Check:

    Dynamic route syntax = [param].js [OK]
Hint: Dynamic routes use [param].js file names [OK]
Common Mistakes:
  • Using plain file names without brackets
  • Confusing file extensions
  • Missing brackets around parameter
3. Given these files in the pages folder: index.js, about.js, [postId].js, what URL paths will Next.js automatically create?
medium
A. /, /about, /:postId (dynamic route)
B. /index, /about, /[postId]
C. /, /about, /postId
D. /home, /about-us, /post

Solution

  1. Step 1: Understand file to route mapping

    index.js maps to root '/', about.js maps to '/about', and [postId].js creates a dynamic route '/:postId'.
  2. Step 2: Evaluate options for correct paths

    /, /about, /:postId (dynamic route) correctly shows '/' for index, '/about' for about.js, and dynamic '/:postId' for [postId].js. Others are incorrect or literal.
  3. Final Answer:

    /, /about, /:postId (dynamic route) -> Option A
  4. Quick Check:

    File names map to routes including dynamic [param] [OK]
Hint: index.js = /, [param].js = dynamic route [OK]
Common Mistakes:
  • Confusing index.js with /index path
  • Treating dynamic routes as literal strings
  • Assuming file names map exactly without dynamic syntax
4. You created a file named user.js inside the pages folder to handle user profiles, but navigating to /123 shows a 404 error. What is the likely problem?
medium
A. Next.js does not support nested routes.
B. The file extension must be .jsx, not .js.
C. The file should be named [userId].js to handle dynamic user IDs.
D. You need to add a route manually in a config file.

Solution

  1. Step 1: Understand dynamic route handling

    To handle URLs like /123, the file must use dynamic routing syntax with brackets, e.g., [userId].js.
  2. Step 2: Check options for correct fix

    The file should be named [userId].js to handle dynamic user IDs. correctly identifies the need for a dynamic route file name. Options A, B, and C are incorrect because Next.js supports .js files, automatic routing, and nested routes.
  3. Final Answer:

    The file should be named [userId].js to handle dynamic user IDs. -> Option C
  4. Quick Check:

    Dynamic routes need [param].js file names [OK]
Hint: Use [param].js for dynamic URLs [OK]
Common Mistakes:
  • Using static file names for dynamic URLs
  • Thinking manual route config is needed
  • Confusing file extensions
5. You want to create a blog with categories and posts using file-based routing. Which folder and file structure correctly supports URLs like /blog/technology/123 where technology is a category and 123 is a post ID?
hard
A. /pages/blog/[category]/[postId].js
B. /pages/blog/category/postId.js
C. /pages/blog/[category-postId].js
D. /pages/blog/category/[postId].js

Solution

  1. Step 1: Understand nested dynamic routes

    To handle URLs with multiple dynamic parts, Next.js uses nested folders with bracketed file names for each parameter.
  2. Step 2: Match structure to URL pattern

    /pages/blog/[category]/[postId].js uses nested folders with [category] and [postId].js, matching /blog/technology/123 correctly. Other options do not match dynamic nesting properly.
  3. Final Answer:

    /pages/blog/[category]/[postId].js -> Option A
  4. Quick Check:

    Nested dynamic folders = nested URL params [OK]
Hint: Use nested [param] folders for multi-level dynamic routes [OK]
Common Mistakes:
  • Putting multiple params in one file name
  • Using static folder names for dynamic parts
  • Not nesting folders for URL segments
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