Next.js通过getServerSideProps函数实现服务端渲染,每次请求时在服务端获取数据并注入页面props,生成完整HTML返回;页面需默认导出函数组件,且不可使用客户端API。
服务端渲染(SSR)在 JavaScript 中指的是页面的 HTML 内容由服务器在响应请求时动态生成并返回,而不是等浏览器加载完 JS 后再由客户端拼出页面。这对首屏加载速度、SEO 和部分网络环境下的用户体验很关键。
Next.js 默认支持 SSR,但不是所有页面都自动启用——它通过特定的导出方式来触发服务端逻辑。
props,然后生成完整的 HTML 返回给浏览器。getServerSideProps 进行渲染流程。
不依赖客户端状态:因为代码运行在 Node.js 环境中,不能访问 window、document 或 localStorage,否则会报错。比如你写一个 pages/user.js:
export async function getServerSideProps() {
const res = await fetch('https://api.example.com/user');
const user = await res.json();
return { props: { user } };
}
export default function UserPage({ user }) {
return {user.name}
{user.email}
;
}
访问该页面时,Next.js 会在服务端调用 getServerSideProps,拿到用户数据,把 UserPage 渲染成带真实内容的 HTML 发送给浏览器,用户看到的就是“开箱即用”的完整页面。
getStaticProps)在构建时生成 HTML,更快更轻量,但不适合实时数据。getServerSideProps 里写 React Hook,它只是普通异步函数,不在组件生命周期内运行。{ redirect: { destination: '/login', permanent: false } } 或 { notFound: true }。getServerSideProps 后保存,Next.js 会自动重启服务端逻辑,无需手动重启 dev server。