什么是SSR SSR有什么用 如何使用使用SSR

SSR(Server-Side Rendering),即服务器端渲染,是一种将 Web 应用的页面渲染成 HTML 后再返回给客户端的技术。相对于传统的客户端渲染(Client-Side Rendering),SSR 的主要优势在于它可以提升网站的首屏加载速度、搜索引擎优化(SEO)和内容可读性等。

SSR 的一般实现步骤如下:

1. 客户端发送页面请求到服务器端

2. 服务器端使用具有渲染能力的模板引擎生成 HTML 代码(包含数据)

3. 服务器将渲染好的 HTML 代码返回给客户端

4. 客户端通过解析 HTML 和加载所需的 CSS、JavaScript 文件,防止显示渲染后的页面

SSR 的主要优势在于:

1. 首屏加载速度更快:因为 SSR 是服务器端完成页面渲染并返回给客户端的,客户端只需要解析 JavaScript 和 CSS 文件,从而提升了速度。

2. 更好的 SEO:搜索引擎爬虫可以直接抓取到完整的 HTML,而非等待 JavaScript 加载完成后再行抓取,并能够处理异步数据。

3. 提升内容可读性:由于 HTML 的内容是在服务器端生成的,所以浏览者在通过查看网页源代码得到内容时, HTML 代码中已经包含了所需要的所有内容。

以下是使用 SSR 的一般方法:

1. 使用框架:大部分已有的前端框架,如 Nuxt.js、Next.js 等都有封装好 SSR 功能,只需要简单配置即可。

2. 自行搭建:可以手动搭建 SSR,原理上和普通的服务器端渲染一样,只是需要一些特殊的配置。

以下是一个 SSR 的案例:

在这个案例中,我使用了 React 作为前端框架和 Node.js 作为后端。

1. 安装所需要的依赖

```

npm install express react react-dom react-router-dom

```

2. 在服务器端使用 ReactDOMServer.renderToString() 方法将 React 组件渲染成字符串,并将字符串插入 HTML 中的

标签中。

```jsx

import express from 'express';

import React from 'react';

import ReactDOMServer from 'react-dom/server';

import { StaticRouter, matchPath } from 'react-router-dom';

import App from './App';

const app = express();

const port = 3000;

app.use(express.static('public'));

app.get('*', (req, res) => {

const context = {};

const html = ReactDOMServer.renderToString(

);

res.send(`

My SSR App

${html}

`);

});

app.listen(port, () => console.log(`Server running on port ${port}`));

```

3. 配置 Webpack 打包服务器端的代码

Webpack 配置需加入 target: 'node' 和 externals: [nodeExternals()],避免服务器端代码打包后运行时无法识别 Node.js 自带的模块。

```jsx

const path = require('path');

const nodeExternals = require('webpack-node-externals');

module.exports = {

entry: './src/server.js',

output: {

path: path.resolve(__dirname, 'dist'),

filename: 'server.bundle.js'

},

module: {

rules: [

{

test: /\.js$/,

exclude: /node_modules/,

use: {

loader: 'babel-loader'

}

}

]

},

target: 'node',

externals: [nodeExternals()]

};

```

4. 构建并运行服务器端代码

将打包好的服务器端代码上传至服务器中,然后使用 node 命令运行即可。

```sh

node server.bundle.js

```

以上就是 SSR 的基本使用方法以及案例展示。SSR 虽然可以提升网站的性能和用户体验,但对服务器的性能要求也有一定的要求。在实际开发中应该综合考虑是否需要使用 SSR 来进行页面的渲染。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.ynyuzhu.com/

点赞(94) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部