Next.js is a React framework that enables server-side rendering (SSR) and static site generation (SSG) for optimized performance.
npx create-next-app my-app
Next.js provides a file-based routing system, making it easy to create pages by simply adding files to the 'pages' directory.
// pages/index.js
export default function Home() { return <h1>Welcome to Next.js!</h1>; }
Next.js allows pre-rendering pages using SSR and SSG for better performance and SEO.
// SSR Example
export async function getServerSideProps() { const res = await fetch('https://api.example.com/data'); const data = await res.json(); return { props: { data } }; }
Next.js provides different methods for data fetching, such as getServerSideProps, getStaticProps, and API routes.
// getStaticProps Example
export async function getStaticProps() { const res = await fetch('https://api.example.com/data'); const data = await res.json(); return { props: { data } }; }
Next.js allows you to create backend API routes within the 'pages/api' directory.
// pages/api/user.js
export default function handler(req, res) { res.status(200).json({ name: 'John Doe' }); }
To sync user data with a database, we can use API routes and libraries like Prisma, MongoDB, or Firebase.
// pages/api/users.js
import db from '../../lib/db';
export default async function handler(req, res) { const users = await db.user.findMany(); res.status(200).json(users); }
NextAuth.js provides authentication solutions using OAuth, JWT, and database sessions.
import { getSession } from 'next-auth/react';
export async function getServerSideProps(context) { const session = await getSession(context); if (!session) { return { redirect: { destination: '/login', permanent: false } }; } return { props: { session } }; }
Next.js middleware allows request handling before reaching the API routes or pages, improving performance.
// middleware.js
import { NextResponse } from 'next/server';
export function middleware(req) { if (!req.cookies.auth) { return NextResponse.redirect('/login'); } return NextResponse.next(); }
Next.js apps can be deployed on platforms like Vercel, Netlify, and AWS.
vercel deploy