Bird
Raised Fist0
NextJSframework~10 mins

Redirect function in NextJS - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Redirect function
User requests a page
↓
Server Component runs redirect function
↓
Redirect function returns a redirect response
↓
Browser receives redirect response
↓
Browser navigates to new URL
↓
New page loads
The redirect function runs when a page is requested, sends a redirect response, and the browser navigates to the new URL.
Execution Sample
NextJS
import { redirect } from 'next/navigation';

export default function Page() {
  redirect('/new-page');
}
This code redirects the user from the current page to '/new-page' immediately when the component runs.
Execution Table
StepActionFunction CallResultBrowser Behavior
1Page requestedPage component startsComponent runsBrowser waits
2Redirect function calledredirect('/new-page')Redirect response sentBrowser receives redirect
3Browser navigatesN/ALoads '/new-page'New page loads
4EndN/ARedirect completeUser sees new page
💡 Redirect function sends a redirect response, so original page does not render; browser navigates to new URL.
Variable Tracker
VariableStartAfter redirect callFinal
redirect URLundefined'/new-page''/new-page'
Key Moments - 2 Insights
Why does the original page not render after calling redirect?
Because the redirect function immediately sends a redirect response (see execution_table step 2), stopping further rendering.
Is redirect function client-side or server-side in Next.js?
It runs in Server Components before rendering, so the redirect happens before the page loads (see concept_flow).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 2, what does the redirect function do?
AWaits for user input
BRenders the current page content
CSends a redirect response to the browser
DLoads the new page immediately
💡 Hint
Check the 'Result' column at step 2 in execution_table.
At which step does the browser start loading the new page?
AStep 1
BStep 3
CStep 2
DStep 4
💡 Hint
Look at the 'Browser Behavior' column in execution_table.
If the redirect URL changed to '/home', what would be the final value of 'redirect URL' in variable_tracker?
A'/home'
B'/new-page'
Cundefined
Dnull
💡 Hint
See how 'redirect URL' changes after redirect call in variable_tracker.
Concept Snapshot
Redirect function in Next.js:
- Used to send user to a different URL
- Called inside Server Components
- Stops current page rendering
- Browser navigates to new URL
- Syntax: redirect('/target-path')
Full Transcript
When a user requests a page in Next.js, the redirect function can be called inside the page component. This function immediately sends a redirect response to the browser, telling it to load a different URL. Because of this, the original page does not render. The browser then navigates to the new URL and loads that page. This process happens in Server Components before the page is sent to the browser. The redirect function is simple to use: just call redirect('/new-path') inside your component. This makes navigation smooth and fast without rendering unwanted content.

Practice

(1/5)
1. What is the main purpose of the redirect function in Next.js?
easy
A. To fetch data from an API
B. To send users automatically to a different page
C. To style components dynamically
D. To create new server routes

Solution

  1. Step 1: Understand the redirect function role

    The redirect function is designed to change the current page to another URL automatically.
  2. Step 2: Compare with other options

    Fetching data, styling, or creating routes are unrelated to redirect's purpose.
  3. Final Answer:

    To send users automatically to a different page -> Option B
  4. Quick Check:

    Redirect = page navigation [OK]
Hint: Redirect means sending user to another page automatically [OK]
Common Mistakes:
  • Confusing redirect with data fetching
  • Thinking redirect styles components
  • Assuming redirect creates routes
2. Which of the following is the correct way to import and use the redirect function in a Next.js server component?
easy
A. import { redirect } from 'next/navigation'; redirect('/home');
B. import redirect from 'next/router'; redirect('/home');
C. import { redirect } from 'next/router'; redirect('/home');
D. import redirect from 'next/navigation'; redirect('/home');

Solution

  1. Step 1: Identify correct import source

    The redirect function is imported from 'next/navigation' as a named import.
  2. Step 2: Check usage syntax

    Calling redirect('/home') after import is correct usage.
  3. Final Answer:

    import { redirect } from 'next/navigation'; redirect('/home'); -> Option A
  4. Quick Check:

    Correct import and call from next/navigation [OK]
Hint: Use named import from 'next/navigation' for redirect [OK]
Common Mistakes:
  • Importing redirect from 'next/router' instead
  • Using default import instead of named import
  • Calling redirect without importing
3. Consider this Next.js server component code snippet:
import { redirect } from 'next/navigation';

export default function Page() {
  const isLoggedIn = false;
  if (!isLoggedIn) {
    redirect('/login');
  }
  return <h1>Welcome</h1>;
}

What will the user see when visiting this page?
medium
A. A runtime error occurs
B. The user sees the text 'Welcome'
C. The page shows a blank screen
D. The user is redirected to '/login' page automatically

Solution

  1. Step 1: Analyze the condition for redirect

    The variable isLoggedIn is false, so the condition !isLoggedIn is true, triggering redirect('/login').
  2. Step 2: Understand redirect effect in server component

    Calling redirect sends the user to '/login' immediately, so the return statement is not reached.
  3. Final Answer:

    The user is redirected to '/login' page automatically -> Option D
  4. Quick Check:

    Redirect triggers when not logged in [OK]
Hint: If redirect runs, page content won't show [OK]
Common Mistakes:
  • Thinking the return content still renders
  • Assuming redirect causes error
  • Ignoring the condition logic
4. This Next.js server component code has a mistake. What is the mistake?
import { redirect } from 'next/navigation';

export default function Page() {
  redirect('/dashboard');
  return <h1>Dashboard</h1>;
}
medium
A. Returning JSX after redirect call
B. Calling redirect outside a conditional or event handler
C. Using redirect in a client component
D. Missing async keyword on the function

Solution

  1. Step 1: Understand redirect behavior

    Calling redirect immediately stops rendering and sends a redirect response.
  2. Step 2: Check code after redirect call

    Returning JSX after redirect is invalid because redirect does not allow further rendering.
  3. Final Answer:

    Returning JSX after redirect call -> Option A
  4. Quick Check:

    Redirect stops rendering, no return allowed after [OK]
Hint: Do not return JSX after calling redirect [OK]
Common Mistakes:
  • Thinking redirect can be called in client components
  • Calling redirect without conditions is allowed
  • Forgetting redirect stops rendering
5. You want to redirect users to '/profile' only if they are logged in, otherwise to '/login'. Which code correctly implements this logic in a Next.js server component?
hard
A. import { redirect } from 'next/navigation'; export default function Page() { const loggedIn = true; if (loggedIn) { redirect('/login'); } else { redirect('/profile'); } return null; }
B. import { redirect } from 'next/navigation'; export default function Page() { const loggedIn = false; if (loggedIn) { redirect('/login'); } else { redirect('/profile'); } return null; }
C. import { redirect } from 'next/navigation'; export default function Page() { const loggedIn = false; if (!loggedIn) { redirect('/login'); } else { redirect('/profile'); } return null; }
D. import { redirect } from 'next/navigation'; export default function Page() { const loggedIn = true; if (!loggedIn) { redirect('/profile'); } else { redirect('/login'); } return null; }

Solution

  1. Step 1: Understand the logic needed

    If user is logged in, send to '/profile'; if not, send to '/login'.
  2. Step 2: Match code logic with requirement

    import { redirect } from 'next/navigation'; export default function Page() { const loggedIn = false; if (!loggedIn) { redirect('/login'); } else { redirect('/profile'); } return null; } checks if not logged in, redirects to '/login', else to '/profile', matching the requirement.
  3. Final Answer:

    Option C code correctly implements the redirect logic -> Option C
  4. Quick Check:

    Redirect to login if not logged in, else profile [OK]
Hint: Redirect to login if NOT logged in, else profile [OK]
Common Mistakes:
  • Swapping redirect URLs for logged in and not logged in
  • Using wrong condition negation
  • Returning JSX after redirect
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