📖 Scenario: You are building a simple Next.js app where users can be redirected from one page to another based on a condition.
🎯 Goal: Create a Next.js page that redirects users to a different URL using the redirect function from Next.js.
📋 What You'll Learn
Create a Next.js page component
Use the redirect function from next/navigation
Set up a condition to trigger the redirect
Export the page as a default React component
💡 Why This Matters
🌍 Real World
Redirects are common in web apps to send users to login pages, error pages, or updated content automatically.
💼 Career
Understanding how to use Next.js redirect functions is important for building user-friendly navigation flows in modern web applications.
Progress0 / 4 steps
1
Create a Next.js page component
Create a new file called page.tsx and write a React functional component named Page that returns a simple <div> with the text Welcome to the redirect demo.
NextJS
Hint
Start by defining a function named Page that returns a <div> with the welcome text.
2
Import the redirect function
At the top of page.tsx, import the redirect function from next/navigation.
NextJS
Hint
Use the ES module import syntax to import redirect from next/navigation.
3
Add a condition to trigger redirect
Inside the Page component, create a constant named shouldRedirect and set it to true. Then, add an if statement that calls redirect('/new-page') if shouldRedirect is true.
NextJS
Hint
Use a simple if statement to check shouldRedirect and call redirect with the target path.
4
Complete the redirect page
Ensure the Page component exports as default and the redirect logic is correctly placed before the return statement.
NextJS
Hint
Make sure the redirect happens before the component returns JSX.
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
Step 1: Understand the redirect function role
The redirect function is designed to change the current page to another URL automatically.
Step 2: Compare with other options
Fetching data, styling, or creating routes are unrelated to redirect's purpose.
Final Answer:
To send users automatically to a different page -> Option B
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
Step 1: Identify correct import source
The redirect function is imported from 'next/navigation' as a named import.
Step 2: Check usage syntax
Calling redirect('/home') after import is correct usage.
Final Answer:
import { redirect } from 'next/navigation'; redirect('/home'); -> Option A
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
Step 1: Analyze the condition for redirect
The variable isLoggedIn is false, so the condition !isLoggedIn is true, triggering redirect('/login').
Step 2: Understand redirect effect in server component
Calling redirect sends the user to '/login' immediately, so the return statement is not reached.
Final Answer:
The user is redirected to '/login' page automatically -> Option D
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
Step 1: Understand redirect behavior
Calling redirect immediately stops rendering and sends a redirect response.
Step 2: Check code after redirect call
Returning JSX after redirect is invalid because redirect does not allow further rendering.
Final Answer:
Returning JSX after redirect call -> Option A
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
Step 1: Understand the logic needed
If user is logged in, send to '/profile'; if not, send to '/login'.
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.
Final Answer:
Option C code correctly implements the redirect logic -> Option C
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 unknownstrongwhile earning +1 Grip toward your certificate.