📜  NextJS 中的 SSR 是什么?(1)

📅  最后修改于: 2023-12-03 15:33:06.564000             🧑  作者: Mango

NextJS 中的 SSR 是什么?

NextJS(基于React的框架)中的SSR指的是服务端渲染(Server-Side Rendering)。传统的React应用是在客户端进行渲染的,即React代码会在浏览器中运行。但这种方式存在两个问题:

  1. 首次加载时,因为需要下载并运行React代码,页面的加载速度会比较慢;
  2. 对于爬虫和搜索引擎来说,它们无法理解客户端渲染的页面,这会影响SEO

为了解决这些问题,我们可以使用SSR。SSR的核心思想是将React组件代码在服务端运行成HTML字符串,然后将这些HTML发送给浏览器,浏览器只需要渲染这些HTML即可。这样可以有效的减少首屏加载时间,并且也能使搜索引擎和爬虫能够理解页面的内容。

在NextJS中,SSR是默认开启的。这意味着我们不需要进行任何特殊的配置即可享受到SSR的好处。NextJS的SSR依靠Node.js中的http模块,将React组件渲染成HTML字符串,并将这些字符串响应给客户端。

// pages/index.js
import React from 'react';

function HomePage() {
  return (
    <div>
      <h1>Hello Next.js</h1>
      <p>This is server-side rendered.</p>
    </div>
  );
}

export default HomePage;

上面的代码中,我们定义了一个React组件HomePage,它会在服务器端被渲染成HTML字符串。由于NextJS默认启用了SSR,因此我们无需进行任何特殊的配置即可实现SSR。只需要在pages目录下创建一个文件,定义一个React组件即可。

在实际开发中,我们需要注意一些问题。由于SSR是在服务器端运行的,因此它无法直接访问浏览器相关的API,例如window、document等。这意味着我们需要在编写代码时进行特殊处理,避免在服务器端抛出异常。

总之,NextJS中的SSR是一种非常实用的技术,可以大大提高页面的首屏加载性能,并且对SEO也非常友好。开发者可以无需进行特殊的配置即可享受到SSR的好处,同时还需要注意一些与浏览器API相关的问题。