首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

梳理NextJS13两种路由下的不同渲染方式:SSG,ISR,SSR,RSC

前言 NextJS是一款基于 React 进行全栈开发的框架,是当下非常火的React全栈框架之一,在去年NextJS发布了V13版本,而本文将基于V13版本的app路由,来梳理它的几种不同的渲染方式的实现...getStaticProps:返回静态页面匹配成功后,需要加载的数据。...所以有了ISR,增量静态生成,可以在一定时间后重新生成静态页面,不需要手动处理。...app app路由实现ISR,需要利用到fetch的缓存策略,在请求接口的时候,添加参数revalidate,来指定接口的缓存时间,让它在一定时间过后重新发起请求。...export const dynamicParams = true; pages pages路由实现ISR需要在getStaticProps方法中添加参数revalidate,来指定周期时间重新生成静态页面

1.4K31
您找到你想要的搜索结果了吗?
是的
没有找到

基于 Next.js 的 SSRSSG 方案了解一下?

6.3 获取数据 (1)静态生成时获取数据 在服务端构建生成静态页面之前,有时候需要获取一些数据,可以借助 getStaticProps 方法。...在页面组件内,同时导出一个 getStaticProps 方法: export default function HomePage(props) { ... } // 导出异步获取数据方法 export...async function getStaticProps() { // 获取数据,例如从数据库、API、文件等 const data = ... // 返回的参数将会按照 key 值赋值到...Next.js 团队提供了一个基于 React Hooks 的 useSWR 钩子,推荐使用,该钩子会处理缓存、重新验证、焦点跟踪、间隔重新获取等。...[5]next/image: https://nextjs.org/docs/api-reference/next/image [6]next/head: https://nextjs.org/docs

5.4K30

使用 NextJS 和 TailwindCSS 重构我的博客

第一版:使用 Hexo 和 Github pages 优点:重新部署只要花 5 分钟,内容管理在本地 纯静态、免费; 缺点:依赖 Github,国内访问困难; 第二版:React + Antd + Mysql...服务器是阿里云 ESC 最低配 优点: 感觉没什么优点; 缺点: 浏览器渲染,搜索引擎无法收录 ESO 优化难,Antd 组件使用方便,但前台页面定制需要覆盖样式; 第三版:NextJS + TailwindCSS...接下来介绍下 NextJS 主要 API: getServerSideProps 服务端渲染 下面是最简单的客户端渲染代码 import React, { ReactElement, useEffect...getStaticProps 在构建时请求数据。...await res.json() // 把数据专递给页面的props return { props: { post }, //当请求进入的时候再次生成文章详情页,比如修改文章重新生成

2.2K20

使用 NextJS 和 TailwindCSS 重构我的个人博客

第一版:使用 Hexo 和 Github pages 优点:重新部署只要花5分钟,内容管理在本地 纯静态、免费; 缺点:依赖Github,国内访问困难; 第二版:React + Antd...Mysql 服务器是阿里云 ESC 最低配 优点: 感觉没什么优点; 缺点: 浏览器渲染,搜索引擎无法收录 ESO 优化难,Antd 组件使用方便,但前台页面定制需要覆盖样式; 第三版:NextJS...接下来介绍下 NextJS 主要 API: getServerSideProps 服务端渲染 下面是最简单的客户端渲染代码 import React, { ReactElement, useEffect...getStaticProps 在构建时请求数据。...await res.json() // 把数据专递给页面的props return { props: { post }, //当请求进入的时候再次生成文章详情页,比如修改文章重新生成

2.6K20

React 设计模式 0x5:服务端渲染 SSR

因为大多数页面都是在服务器端预渲染并在客户端上提供的 图片优化 自动优化图像,现在支持 AVIF 图像,使图像比 WebP 小 20% TypeScript 支持 自动配置和编译 TypeScript 零配置 优秀的开发者体验 使用 NextJS...TBT 越好,Web 应用程序就越快,对您的用户有用,这使得将他们转化为客户更有可能 等待页面进行交互可能会增加跳出率 这是另一个与 SEO 相关的因素 性能 # 缺点 研发管理 如果你想使用 NextJS...为了生成页面,我们需要导出页面组件或 getStaticProps 函数(需要的时候,还可以导出 getStaticPaths 函数)。...) => ( {user.name} ))} ); } export async function getStaticProps...params: { id: user.id }, })); return { paths, fallback: false }; } export async function getStaticProps

3.9K10

助力ssr,使用concent为nextjs应用加点料

开源不易,感谢你的支持,❤ star concent^_^ [image.png] 序言 nextjs是一个非常流行的 React 服务端渲染应用框架,它很轻量,简单易上手,社区活跃,所以当我们使用react...写一个需要ssr(server side render)的应用的话,基本都会首选nextjs,concent是一个新生代的react状态管理方案,它内置依赖收集系统,同时兼具有0入侵、可预测、渐进式、高性能的特点...^_^ 支持预渲染 next提供两种级别的预渲染接口,即getServerSideProps和getStaticProps,两种的区别是执行时机不同,getServerSideProps是每次请求页面都会执行...,而getStaticProps是构建时执行,我们先处理getServerSideProps这种情况吧,看看如何集合concent做预渲染支持。...所以我们的切入点就可以从这里入手了,我们把getStaticProps的返回结果做一下格式约束,形如{module:string, state: object}这样的结构,然后在_app.js文件里记录到

2.4K81

Next.js静态页面渲染技术(静态生成和服务端渲染):BSRSSRSSG

我们可以在服务端这样写:通过getStaticProps获取内容。声明位置:每个page不是默认导出一个函数么,把getStaticProps声明在这个函数旁边即可,默认export导出。...SSG静态化的时机:开发环境:在开发环境每次请求都会运行一次getStaticProps,这是为了方便修改代码时重新运行。...生产环境:getStaticProps只在build时运行一次,这样可以提供一份html给所有用户下载。...使用SSR:这些更新极快的内容我们可以客户端渲染,下拉更新服务端渲染,下拉更新但这次的服务端渲染不能用getStaticProps,因为getStaticProps是在build时执行的,可用getServerSideProps...转载本站文章《next.js静态页面渲染技术(静态生成和服务端渲染):BSR/SSG/SSG》,请注明出处:https://www.zhoulujun.cn/html/webfront/server/nextjs

3.4K20

卷起来,前端建站SSG,SSR,ISR,Hydration, Island...一网打尽

NextJs成名已久,功能全面,astro Island 独步天下,qwik No hydration 异军突起。remix 守正出奇,无招胜有招。 今天我们来一块说道说道。...应该是NextJS的首创,从一定程度上优化了SSG了的问题。...serverless function, if // revalidation is enabled and a new request comes in export async function getStaticProps...return { paths, fallback: 'blocking' } } export default Blog 按需刷新 而按需的方式是算是NextJS对上述方式的优化。...上面NextJs的ISR或多或少也是为了解决这个问题。当然另一个更彻底的思路,在边缘的节点上也能有数据持久化的能力,例如cloudflare,或者使用一些分布式的数据库,这里不再展开。

1.8K30

卷起来,前端建站SSG,SSR,ISR,Hydration, Island...一网打尽

NextJs成名已久,功能全面,astro Island 独步天下,qwik No hydration 异军突起。remix 守正出奇,无招胜有招。今天我们来一块说道说道。...应该是NextJS的首创,从一定程度上优化了SSG了的问题。...a serverless function, if// revalidation is enabled and a new request comes inexport async function getStaticProps...return { paths, fallback: 'blocking' }}export default Blog按需刷新而按需的方式是算是NextJS对上述方式的优化。...上面NextJs的ISR或多或少也是为了解决这个问题。当然另一个更彻底的思路,在边缘的节点上也能有数据持久化的能力,例如cloudflare,或者使用一些分布式的数据库,这里不再展开。

1.8K50

Next.js - SSR SSG CSR ISR Dynamic Routing

来实现静态页面生成,该动作在 next build 时执行,示例代码如下:// posts will be populated at build time by getStaticProps()function...>{data.bio} )}Next.js 背后的技术团队开发了名为 SWR 的 React Hook 包,如果使用客户端渲染的话,强烈推荐使用 SWR,它可以处理缓存、重新验证...、焦点跟踪、间隔重新获取等。...在缓存期间内,用户的请求会直接返回缓存;缓存时间结束后,用户再次请求,会重新渲染并生成新的缓存。使用 ISR,就可以在运行时实现静态页面生成,而无需重新构建整个网站。...Dynamic Routing在 Next.js 中配合使用 getStaticPaths + getStaticProps 即可实现动态路由的预渲染,该动作在 next build 时执行,示例代码:

1.1K20

React 服务端渲染

20210126144831765.png 我们以 React 对应的 Next.js 为例,来具体感受服务端渲染; Next.js 框架 中文官网首页,已经介绍的非常清楚了:https://www.nextjs.cn...服务器端渲染访问速度不如静态生成快,但是由于每次请求都会重新渲染,所以适用数据频繁更新的页面或页面内容随请求变化而变化的页面; 在 next.js 中,静态生成分为 无数据和有数据两种情况; 如果组件不需要在其他地方获取数据...有数据的静态生成 getStaticProps() 这个方法官方翻译为 静态生成。是把组件提前编译成 html 文件,然后把整个 html 文件响应到客户端,从而达到预渲染的目的。...getStaticProps() 方法是个异步方法,在 Node 环境下执行(构建时执行),因此可以进行文件读写,数据库链接,网络通信等一些列操作 对于这个方法的使用,先看 demo: import...与 getStaticProps 共同使用,会根据不同的请求参数生成不同的静态页面,它的使用方式比较特殊,代码文件要放在一个目录中,同时代码文件的文件名,要使用 可选项 文件名的形式,如\pages\

2.3K50

干货 | 三分钟重新学习交叉验证

值得一提的是,验证集和训练集必须满足独立同分布条件,否则交叉验证只会让结果变得更加糟糕。 为什么交叉验证会有这些助益?...验证有助于我们评估模型的质量 验证有助于我们挑选出那些能够在预测数据集上取得最好性能的模型 验证有助于我们避免过拟合与欠拟合 什么是过拟合/欠拟合?...不同的验证策略 通常,依据数据集中分割方式的不同,会有不同的验证策略。...在准备发布最终模型之前,我们可以在整个数据集上重新训练模型,而不需要更改任何超参数。 ? 但是这种划分方式存在一个主要的缺陷: 如果我们的划分方式并不是随机的呢?...k 分交叉验证可以看做是执行了多次的简单二分划分验证,然后我们在执行了 k 次不同的简单划分验证之后继续简单地将得分进行平均。

95910

如何在 Next.js 全栈应用程序中无缝实现身份验证

这时就要请出托管身份验证提供程序 Clerk 了,它消除了身份验证中的所有难题,大大降低了妥善保护全栈应用程序的门槛。与其他托管身份验证提供程序相比,Clerk 的开发者体验也明显做得更好。...npm install @clerk/nextjs 接下来需要创建一个 Clerk 账户和新项目,获取要用到的 API 密钥。...import { ClerkProvider } from '@clerk/nextjs'; import '....*|_next).*)", "/", "/(api|trpc)(.*)"], }; 此外,将以下新变更添加到.env.local 文件当中,以告知 Clerk 在需要重新定向时如何操作。...请注意,如果未能通过身份验证,访问者将被重新定向至 /sign-in。 在主页中显示登录链接 当用户尚未登录时,我们的 root 页面目前不会显示任何信息。

72820
领券