0

0

掌握 Nextjs 中的 SSR:如何提升 SEO 和用户体验

心靈之曲

心靈之曲

发布时间:2024-10-16 08:12:09

|

661人浏览过

|

来源于dev.to

转载

掌握 nextjs 中的 ssr:如何提升 seo 和用户体验

ssr(服务器端渲染)是 next.js 中生成页面的另一种方法。在本文中,我想解释什么是 ssr、它是如何工作的,以及如何在 next.js 项目的 page router 和 app router 中实现它。

什么是ssr?

ssr是一种在用户发出请求后生成静态页面(或预渲染页面)的方法。这意味着每次请求都会生成一个静态页面。此方法对于需要经常更新的页面很有用,因为它可以确保数据始终是最新的

ssr 如何工作?

当您在 next.js 中使用 ssr 时,每次用户请求实现了 ssr 的页面时,都会在发出请求后生成该页面。这意味着用户必须等待 next.js 为每个请求再次生成并捆绑静态内容。静态页面准备好后,用户就可以看到请求的页面。

需要注意的是,ssr 仅在服务器上运行,并且它会为每个请求生成一个静态页面,因此它不会在项目的构建过程中运行。

如何在 app router 中实现 ssr

要在 app router 中实现 ssr,您不需要编写特殊函数或设置特定配置,因为它在您的服务器组件中默认启用。

例如,如果您有一个静态页面并从 api 获取数据,则该页面将默认使用 ssr。需要注意的是,当使用 ssr 时,页面不会在构建时捆绑或预渲染。如果您在项目中使用动态页面,如果您不获取任何数据,它将默认使用 ssg。但是当您从 api 获取时,它将切换到 ssr,并且在构建期间不会捆绑任何静态页面。

这是在静态路由中实现 ssr 的示例:

import react from 'react';

const aboutpage = async () => {
  // fetch data from an api or any server-side source
  const data = getdatafromapi();

  return (
    

about us

{data}

); }; export default aboutpage;

如何在页面路由器中实现 ssr

要在页面路由器中实现 ssr,您需要在文件中创建 getserversideprops 函数。该函数将在每次用户请求后调用。如果您使用动态路由,例如 [id] 文件,则还需要在文件中使用 getserversideprops。该函数采用一个参数,通常称为 context,您可以从中检索 id,即动态页面的值。服务器在每次用户请求时都会调用此函数。

酷兔AI论文
酷兔AI论文

专业原创高质量、低查重,免费论文大纲,在线AI生成原创论文,AI辅助生成论文的神器!

下载

这是在 tsx 文件中实现的示例:

import { getserversideprops } from 'next';

interface aboutprops {
  data: string;
}

const aboutpage: react.fc = ({ data }) => {
  return (
    

about us

{data}

); }; // this function runs on the server on every request export const getserversideprops: getserversideprops = async () => { const data = getdatafromapi(); return { props: { data, }, }; }; export default aboutpage;

这是在 jsx 文件中实现的示例:

const AboutPage = ({ data }) => {
  return (
    

About Us

{data}

); }; // This function runs on the server on every request export async function getServerSideProps() { const data = getDataFromApi(); return { props: { data, }, }; } export default AboutPage;

结论

ssr 是捆绑或创建静态页面的有用方法,但它不会在构建期间发生。当您需要根据每个用户请求更新页面以便用户可以看到最新数据时,您可以使用 ssr。但是,需要注意的是,它可能需要更多时间,并且不如 ssg(静态站点生成)或 isr(增量静态重新生成)等其他方法那么快,因为它会为每个用户请求生成一个静态页面。

希望您喜欢这篇文章!如果您有任何疑问,请随时问我。如果您想了解 isr 和 ssg,可以在此处查看我关于 isr 和 ssg 的文章。如果你想了解更多,可以关注我的网站。

感谢您的阅读!暂时再见!

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

510

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

244

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

258

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

5287

2023.08.17

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

478

2023.09.01

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

209

2023.09.04

Js中concat和push的区别
Js中concat和push的区别

Js中concat和push的区别:1、concat用于将两个或多个数组合并成一个新数组,并返回这个新数组,而push用于向数组的末尾添加一个或多个元素,并返回修改后的数组的新长度;2、concat不会修改原始数组,是创建新的数组,而push会修改原数组,将新元素添加到原数组的末尾等等。本专题为大家提供concat和push相关的文章、下载、课程内容,供大家免费下载体验。

218

2023.09.14

js截取字符串的方法介绍
js截取字符串的方法介绍

JavaScript字符串截取方法,包括substring、slice、substr、charAt和split方法。这些方法可以根据具体需求,灵活地截取字符串的不同部分。在实际开发中,根据具体情况选择合适的方法进行字符串截取,能够提高代码的效率和可读性 。

218

2023.09.21

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号