Bird
Raised Fist0
NextJSframework~5 mins

App directory (App Router) in NextJS - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the app directory in Next.js App Router?
The app directory organizes your application’s UI and routing using React Server Components. It replaces the older pages directory and allows for nested layouts, server rendering, and improved routing control.
Click to reveal answer
beginner
How do you define a route in the Next.js app directory?
Each folder inside the app directory corresponds to a route segment. A file named page.jsx or page.tsx inside a folder defines the component rendered for that route.
Click to reveal answer
intermediate
What is a layout in the Next.js App Router and how is it used?
A layout is a React component named layout.jsx or layout.tsx inside a folder in app. It wraps pages and nested routes, allowing shared UI like headers or footers to persist across pages.
Click to reveal answer
intermediate
Explain the difference between Server Components and Client Components in the Next.js App Router.
Server Components run on the server and can fetch data directly, improving performance. Client Components run in the browser and handle interactivity. You mark Client Components with "use client" at the top of the file.
Click to reveal answer
intermediate
How does Next.js handle loading states in the App Router?
You can create a loading.jsx or loading.tsx file inside a route folder to show a loading UI while the page or data is loading. This improves user experience by showing feedback during navigation.
Click to reveal answer
In Next.js App Router, which file defines the UI for a route?
Aroute.js
Bpage.jsx
Capp.js
Dindex.js
What file do you add to share UI like headers across multiple pages in Next.js App Router?
Ashared.jsx
Bheader.jsx
Clayout.jsx
Dapp.jsx
How do you mark a component as a Client Component in Next.js App Router?
AUse a special ClientComponent wrapper
BName the file client.jsx
CImport React from 'client'
DAdd "use client" at the top of the file
Where do you place a loading.jsx file in Next.js App Router?
AInside the route folder to show loading UI for that route
BIn the root <code>app</code> directory only
CNext to <code>page.jsx</code> but outside any folder
DIn the <code>public</code> folder
What is the main advantage of Server Components in Next.js App Router?
AThey run on the server and can fetch data directly
BThey run faster in the browser
CThey allow client-side routing
DThey enable CSS styling
Describe how routing works in the Next.js App Router using the app directory structure.
Think about how folders and files map to URLs and UI.
You got /4 concepts.
    Explain the difference between Server Components and Client Components in Next.js App Router and when to use each.
    Consider where the code runs and what it does.
    You got /5 concepts.

      Practice

      (1/5)
      1. In Next.js App Router, what does a folder containing a page.js file represent?
      easy
      A. A route in the application
      B. A layout wrapper for pages
      C. A server API endpoint
      D. A static asset folder

      Solution

      1. Step 1: Understand the role of page.js in App Router

        In Next.js App Router, each folder with a page.js file defines a route that users can visit.
      2. Step 2: Differentiate from other files

        Files like layout.js define layouts, not routes. API routes are in api/ folders, and static assets are in public/.
      3. Final Answer:

        A route in the application -> Option A
      4. Quick Check:

        Folder + page.js = route [OK]
      Hint: Folder with page.js always means a route [OK]
      Common Mistakes:
      • Confusing layout.js with page.js
      • Thinking page.js is for API routes
      • Assuming static assets are routes
      2. Which of the following is the correct way to define a layout in the Next.js App Router?
      easy
      A. Create a layout.js file inside the route folder
      B. Create a page.js file inside the route folder
      C. Create a _app.js file in the root folder
      D. Create a server.js file in the route folder

      Solution

      1. Step 1: Identify layout file naming in App Router

        Layouts are defined by creating a layout.js file inside the folder representing the route.
      2. Step 2: Exclude old or unrelated files

        The _app.js file is used in the old pages router, not App Router. page.js defines pages, not layouts. server.js is unrelated.
      3. Final Answer:

        Create a layout.js file inside the route folder -> Option A
      4. Quick Check:

        layout.js = layout file [OK]
      Hint: Layouts use layout.js, not page.js or _app.js [OK]
      Common Mistakes:
      • Using _app.js instead of layout.js
      • Confusing page.js with layout.js
      • Trying to define layout in server.js
      3. Given this folder structure in the app/ directory:
      app/
        layout.js
        page.js
        dashboard/
          layout.js
          page.js
      

      What happens when a user visits /dashboard?
      medium
      A. Only the root layout wraps the dashboard page, dashboard layout is ignored
      B. Only the dashboard layout wraps the dashboard page, root layout is ignored
      C. The root layout wraps the dashboard layout, which wraps the dashboard page
      D. No layout is applied, only the dashboard page renders

      Solution

      1. Step 1: Understand nested layouts in App Router

        Layouts in parent folders wrap layouts and pages in child folders. So root layout wraps dashboard layout, which wraps dashboard page.
      2. Step 2: Confirm layout application order

        Visiting /dashboard applies root layout first, then dashboard layout, then renders dashboard page inside.
      3. Final Answer:

        The root layout wraps the dashboard layout, which wraps the dashboard page -> Option C
      4. Quick Check:

        Layouts nest from root to child [OK]
      Hint: Layouts nest from parent to child folders [OK]
      Common Mistakes:
      • Thinking only one layout applies
      • Ignoring root layout when inside subfolder
      • Assuming layouts do not nest
      4. You wrote this code in app/dashboard/page.js:
      export default function DashboardPage() {
        return 

      Dashboard

      }

      But when you visit /dashboard, you get a blank page. What is the most likely cause?
      medium
      A. The page.js file must be named index.js
      B. The DashboardPage component must be a class component
      C. You forgot to export the component as default
      D. Missing layout.js in app/ folder

      Solution

      1. Step 1: Verify root layout presence

        In Next.js App Router, a root layout.js file in the app/ directory is required to render any pages, including nested ones.
      2. Step 2: Confirm naming and export correctness

        The page.js file name is correct, and the component is exported as default. Class components are not required.
      3. Final Answer:

        Missing layout.js in app/ folder -> Option D
      4. Quick Check:

        Root layout required for all pages [OK]
      Hint: Root layout.js required for nested pages [OK]
      Common Mistakes:
      • Renaming page.js to index.js incorrectly
      • Forgetting default export
      • Thinking class components are required
      5. You want to create a nested route /blog/[slug] using the App Router. Which folder and file structure is correct?
      hard
      A. app/blog/_slug/page.js
      B. app/blog/[slug]/page.js
      C. app/blog/slug/page.js
      D. app/blog/[slug].js

      Solution

      1. Step 1: Understand dynamic route syntax in App Router

        Dynamic routes use square brackets around the parameter name as folder names, e.g., [slug].
      2. Step 2: Confirm correct file placement

        The dynamic folder [slug] contains a page.js file to render the dynamic route. Other options use incorrect naming or file placement.
      3. Final Answer:

        app/blog/[slug]/page.js -> Option B
      4. Quick Check:

        Dynamic routes use [param] folder with page.js [OK]
      Hint: Dynamic routes use [param] folders with page.js inside [OK]
      Common Mistakes:
      • Using _slug instead of [slug]
      • Placing dynamic param in filename instead of folder
      • Omitting page.js inside dynamic folder
      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