Bird
Raised Fist0
NextJSframework~20 mins

Page.tsx as route definition in NextJS - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Next.js Page Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
1:30remaining
What does this Next.js Page component render?
Consider this Next.js 14 Page.tsx file in the app directory. What will the user see when visiting this route?
NextJS
export default function Page() {
  return <main><h1>Welcome to Next.js 14!</h1><p>This is the home page.</p></main>;
}
A<main><h1>Welcome to Next.js 14!</h1><p>This is the home page.</p></main>
B<div><h1>Welcome to Next.js 14!</h1><p>This is the home page.</p></div>
C<main><h2>Welcome to Next.js 14!</h2><p>This is the home page.</p></main>
D<main><h1>Welcome!</h1><p>This is the home page.</p></main>
Attempts:
2 left
💡 Hint
Look carefully at the tags and text inside the returned JSX.
📝 Syntax
intermediate
1:30remaining
Which option correctly exports a Next.js Page component in TypeScript?
Choose the correct way to define and export a Page component in Next.js 14 using TypeScript.
Aexport function Page() { return <div>Hello</div>; }
Bexport default const Page = () => <div>Hello</div>;
Cfunction Page() { return <div>Hello</div>; } export Page;
Dexport default function Page() { return <div>Hello</div>; }
Attempts:
2 left
💡 Hint
Next.js expects a default export for the page component.
❓ state_output
advanced
2:00remaining
What is the rendered output after clicking the button?
This Next.js Page component uses React state. What text is shown after clicking the button once?
NextJS
import { useState } from 'react';

export default function Page() {
  const [count, setCount] = useState(0);
  return (
    <main>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </main>
  );
}
A<main><p>Count: 1</p><button>Increment</button></main>
B<main><p>Count: 0</p><button>Increment</button></main>
C<main><p>Count: NaN</p><button>Increment</button></main>
D<main><p>Count: -1</p><button>Increment</button></main>
Attempts:
2 left
💡 Hint
The button increases count by 1 on each click.
❓ lifecycle
advanced
1:30remaining
When does the useEffect run in this Next.js Page component?
Given this component, when will the console.log inside useEffect execute?
NextJS
import { useEffect } from 'react';

export default function Page() {
  useEffect(() => {
    console.log('Page mounted');
  }, []);
  return <main><h1>Hello</h1></main>;
}
AEvery time the user clicks anywhere on the page.
BEvery time the component re-renders.
COnly once after the component first renders on the client.
DOnly on the server during initial render.
Attempts:
2 left
💡 Hint
An empty dependency array means the effect runs once after mount.
🔧 Debug
expert
2:30remaining
Why does this Next.js Page component cause a runtime error?
Examine this Page.tsx code. What causes the error when visiting this route?
NextJS
export default function Page() {
  const message = 'Hello';
  return (
    <main>
      <h1>{message.toUppercase()}</h1>
    </main>
  );
}
AThe variable 'message' is not declared.
BThe method 'toUppercase' is not defined on string, should be 'toUpperCase'.
CJSX elements must have a single parent element.
DThe function is missing a return statement.
Attempts:
2 left
💡 Hint
Check the spelling of string methods used inside JSX.

Practice

(1/5)
1. In Next.js App Router, what does a Page.tsx file represent?
easy
A. A route that renders the default exported React component
B. A configuration file for server settings
C. A CSS stylesheet for styling components
D. A utility file for API calls

Solution

  1. Step 1: Understand the role of Page.tsx in Next.js App Router

    A Page.tsx file automatically defines a route based on its folder location.
  2. Step 2: Identify what the file exports

    The default export of Page.tsx is the React component rendered when visiting that route.
  3. Final Answer:

    A route that renders the default exported React component -> Option A
  4. Quick Check:

    Page.tsx = route component [OK]
Hint: Page.tsx file = route + component [OK]
Common Mistakes:
  • Thinking Page.tsx is for styling or config
  • Confusing Page.tsx with API route files
  • Assuming Page.tsx exports multiple components
2. Which of the following is the correct way to define a route component in Page.tsx?
easy
A. export default function Page() { return
Hello
}
B. function Page() { return
Hello
}
C. export function Page() { return
Hello
}
D. const Page = () => {
Hello
}

Solution

  1. Step 1: Check for default export

    Next.js requires the route component to be the default export from Page.tsx.
  2. Step 2: Verify the function returns JSX correctly

    The function must return JSX explicitly; arrow functions need a return statement or parentheses.
  3. Final Answer:

    export default function Page() { return <div>Hello</div> } -> Option A
  4. Quick Check:

    Default export + returns JSX = export default function Page() { return
    Hello } [OK]
Hint: Default export function returning JSX is correct [OK]
Common Mistakes:
  • Missing default export
  • Arrow function without return statement
  • Named export instead of default
3. Given this folder structure in Next.js App Router:
/app/about/Page.tsx exports a component showing <h1>About Us</h1>.
What will be rendered when visiting /about in the browser?
medium
A. An error because Page.tsx is missing
B.

About Us

C. A blank page
D. The content of the root Page.tsx

Solution

  1. Step 1: Map folder to route

    The folder /app/about corresponds to the route /about.
  2. Step 2: Render the default export from Page.tsx

    The Page.tsx inside /about exports a component rendering <h1>About Us</h1>.
  3. Final Answer:

    <h1>About Us</h1> -> Option B
  4. Quick Check:

    Folder name = route, Page.tsx renders component [OK]
Hint: Folder name = route URL, Page.tsx renders content [OK]
Common Mistakes:
  • Confusing root Page.tsx with nested routes
  • Expecting error if Page.tsx exists
  • Thinking route needs explicit config
4. What is wrong with this Page.tsx file?
export default function Page() {
Welcome

}
medium
A. Function name must be lowercase
B. Page.tsx cannot export a function
C. JSX must be wrapped in a fragment
D. Missing return statement inside the function

Solution

  1. Step 1: Check function body for return

    The function body has JSX but no return keyword, so it returns undefined.
  2. Step 2: Understand JSX rendering requirement

    React components must return JSX explicitly or implicitly; missing return causes no render.
  3. Final Answer:

    Missing return statement inside the function -> Option D
  4. Quick Check:

    JSX without return = error [OK]
Hint: Always return JSX from component functions [OK]
Common Mistakes:
  • Assuming JSX auto-returns without return
  • Thinking function name case matters
  • Believing JSX must be wrapped in fragment always
5. You want to create a nested route /dashboard/settings in Next.js App Router. Which folder and file structure correctly defines this route?
hard
A. /app/dashboard-settings/Page.tsx
B. /app/dashboard/Page.tsx and /app/settings/Page.tsx
C. /app/dashboard/settings/Page.tsx with default export component
D. /app/dashboard/settings.tsx

Solution

  1. Step 1: Understand nested route folder structure

    Nested routes are created by nesting folders inside /app matching the URL path segments.
  2. Step 2: Identify correct file placement

    The route /dashboard/settings requires /app/dashboard/settings/Page.tsx with a default export component.
  3. Final Answer:

    /app/dashboard/settings/Page.tsx with default export component -> Option C
  4. Quick Check:

    Nested folders + Page.tsx = nested route [OK]
Hint: Nested folders match nested routes, Page.tsx inside last folder [OK]
Common Mistakes:
  • Placing Page.tsx in wrong folder
  • Using dash instead of nested folders
  • Naming file settings.tsx instead of Page.tsx
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