返回
React16.x中SSR:用Express点亮SEO
前端
2023-12-22 03:24:27
React凭借其组件化思想、虚拟DOM、数据驱动、高效渲染等特性,成为构建UI界面的宠儿,前端开发中不可或缺。然而,单页应用将UI层和内容都由javascript来渲染,搜索引擎或网页爬虫需要完成的HTML结构,因此单页应用初始加载时,往往一片空白,直到javascript运行完,页面才会完整呈现在浏览器中,这造成以下问题:
- SEO 不友好:搜索引擎无法抓取初始为空的页面内容,影响SEO排名。
- 首屏加载慢:初始页面加载时,需要下载并执行javascript文件,导致首屏加载变慢。
服务端渲染(SSR)技术应运而生,它将单页应用提前在服务器端渲染成HTML,然后发送给客户端。这样,搜索引擎和网页爬虫可以直接抓取HTML内容,首屏加载也会更快。
本文将结合Express,让您充分了解React16.x中的服务端渲染(SSR),使SEO和首屏加载速度更上一层楼。
实施步骤
1. 安装依赖
npm install --save express react react-dom
2. 创建服务端文件
const express = require('express');
const react = require('react');
const reactDom = require('react-dom/server');
const app = express();
app.get('/', (req, res) => {
const html = reactDom.renderToString(<div>Hello World!</div>);
res.send(`<html><body>${html}</body></html>`);
});
app.listen(3000, () => {
console.log('Example app listening on port 3000!');
});
3. 运行服务端
node server.js
4. 在客户端使用服务端渲染的HTML
fetch('/')
.then(res => res.text())
.then(html => document.body.innerHTML = html);
优点
- SEO友好: 搜索引擎可以直接抓取HTML内容,改善SEO排名。
- 首屏加载快: HTML已经提前在服务器端渲染好,首屏加载更快。
- 可扩展性: 服务端渲染可以在多种环境中使用,如Node.js、Ruby等。
缺点
- 复杂度高: 服务端渲染需要更多的代码和配置,增加了项目的复杂度。
- 性能开销: 服务端渲染需要在服务器端进行额外的计算,可能增加服务器的性能开销。
适用场景
服务端渲染特别适合以下场景:
- SEO非常重要: 如电商网站、新闻网站等,需要在搜索引擎中获得更高的排名。
- 首屏加载速度非常重要: 如门户网站、大型应用等,需要在用户打开网站时快速呈现内容。
- 有足够的服务器资源: 服务端渲染会增加服务器的性能开销,需要有足够的服务器资源来支持。
总结
React中的服务端渲染(SSR)是一项非常有用的技术,它可以改善SEO排名、提高首屏加载速度,特别适用于SEO非常重要、首屏加载速度非常重要且有足够服务器资源的场景。