Next.js interviews centre on rendering strategies, the App Router, server components, and caching — the parts that separate Next from plain React. Below are the most common questions with model answers. Junior: core theory, definitions, and simple practical cases.
Try it — no account needed
Preparing your question…
Topics to prepare
✓SSR, SSG, ISR and CSR
✓App Router vs Pages Router
✓Server components
✓Route handlers and API
✓Caching and revalidation
✓Image and font optimization
6 Junior-level questions with answers
1
What is the difference between a Server Component and a Client Component?
Answer
Server Components render on the server, never ship their code to the browser and can read a database directly. Client Components run in the browser and are what you need for state, effects and event handlers. Everything is a Server Component until you write 'use client', and that directive marks a boundary — everything imported below it becomes client code too.
2
What does `'use client'` actually do?
Answer
It marks the boundary between server and client code, not a single file. Putting it at the top of a component means that component and everything it imports gets bundled for the browser. That is why it belongs as deep in the tree as possible — a 'use client' in a layout drags the whole subtree into the bundle.
3
What is the difference between the App Router and the Pages Router?
Answer
Pages Router puts a route in a file and fetches data with getServerSideProps or getStaticProps. App Router uses folders with page.tsx, supports nested layouts that do not re-render on navigation, and fetches with async components. New projects use App Router; Pages exists because migrations take time.
4
What do `layout.tsx` and `page.tsx` each do?
Answer
page.tsx is the route's own content. layout.tsx wraps it and everything nested beneath, and crucially does not re-render when you navigate between its children — which is why navigation and sidebars belong there. State in a layout survives navigation; state in a page does not.
5
How do you make a page load its data before rendering?
Answer
Make the Server Component async and await the data directly in it — no hook, no effect, no loading state in the component itself. Next renders it once the promise resolves. A loading.tsx next to the page provides the fallback while it does.
6
What is the difference between `Link` and a plain anchor?
Answer
Link navigates on the client, keeps the layout mounted and prefetches the route when it enters the viewport. A plain <a> does a full page load, throwing away the React tree and any state. Using an anchor for internal navigation is the fastest way to make a fast app feel slow.
🦎
Reading answers is not enough
In a real interview you speak under pressure. Cam asks these same questions, scores every answer, and shows exactly what to fix.