首页
学习
活动
专区
圈层
工具
发布

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

前言 NextJS是一款基于 React 进行全栈开发的框架,是当下非常火的React全栈框架之一,在去年NextJS发布了V13版本,而本文将基于V13版本的app路由,来梳理它的几种不同的渲染方式的实现...getStaticProps:返回静态页面匹配成功后,需要加载的数据。...On-demand Revalidation(按需增量生成) NextJS提供了更新静态页面的方法,我们可以在 app 目录下新建一个 app/api/revalidate/route.ts接口,用于实现触发增量更新的接口...On-demand Revalidation(按需增量生成) pages路由实现增量生成和app路由类似,我们可以在 pages 目录下新建一个 pages/api/revalidate.ts接口,用于触发增量生成...兜底策略 getStaticPaths 方法中还有一个参数 fallback 用于控制未生成静态页面的渲染方式。设置此变量后,我们可以指定路由未生成时的页面渲染内容,避免出现报错。

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

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

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

    2.8K81

    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

    5.4K10

    如何使用 Nx、Next.js 和 TypeScript 构建 Monorepo

    接下来,我们需要在要创建 monorepo 的目录中运行以下命令: npx create-nx-workspace@latest nx-nextjs-monorepo 上面的命令将创建一个 Nx 工作区...您可能需要替换nx-nextjs-monorepo为工作区的名称。它可以命名为您喜欢的任何名称。工作空间的名称一般是组织、公司等的名称。...: GetStaticProps = async () => { const client = initializeGraphQL(); await graphQLRequest(client...我们在构建期间通过getStaticProps获取数据,这是一个 Next.js 函数。但是,如果我们在构建期间获取数据,则数据可能会过时。所以,我们使用revalidate选项。.../components": ["libs/components/src/index.ts"] } @nx-nextjs-monorepo/components是我们组件库的名称。

    6.9K51

    Next.js预渲染数据断层:在线商城个性化推荐的时效性困局

    15:23] 用户A浏览产品M(记录到数据库)[2025-08-26T10:15:30] 用户刷新页面,推荐列表仍为:[产品X, 产品Y, 产品Z] [2025-08-26T11:00:05] ISR触发重新生成...1.4 初步假设问题可能源于:getStaticProps 的静态生成特性,导致数据无法实时更新。客户端未动态补丁推荐数据。推荐系统的 API 未与前端实时同步。...2.2 排查方向二:服务端预渲染数据是否未更新?假设:推荐列表数据通过 getStaticProps 在构建时预渲染到页面中,且未配置更新机制。...在构建时获取并静态生成,且未配置任何更新机制,导致数据永久停留在构建时刻。...useEffect:在组件挂载后立即触发实时数据获取。轮询间隔:根据业务需求设置,此处5分钟是平衡体验与性能的选择。

    19820

    Next.js进阶:静态生成、服务器端渲染与SEO优化

    使用getStaticProps获取静态数据在页面组件中使用getStaticProps生命周期方法获取静态数据。该方法在构建时运行,返回的数据将用于生成静态HTML文件。...jsxexport const getStaticProps = async () => { const posts = await fetchPostsFromApi(); // 获取静态数据 return...获取动态路径列表 return { paths: slugs.map((slug) => ({ params: { slug } })), fallback: 'blocking', // 可选,指定未匹配路径的处理策略...};};export const getStaticProps = async (context) => { const post = await fetchPostBySlug(context.params.slug...使用getServerSideProps获取服务器端数据与getStaticProps类似,getServerSideProps也在服务器端运行,但每次用户请求时都会触发。适合需要实时数据的场景。

    2.1K10

    卷起来,前端建站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,或者使用一些分布式的数据库,这里不再展开。

    2.3K30

    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

    4.9K20

    卷起来,前端建站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,或者使用一些分布式的数据库,这里不再展开。

    2.3K50

    一起来学 next.js - getStaticProps、getStaticPaths 篇

    之前讲过 next.js 中的 getServerSideProps,今天来讲一讲另一个很类似的 API:getStaticProps,以及和 getStaticProps 紧密相关的 getStaticPaths...getStaticProps 主要用于构建时落地一些静态数据,但不同于 getServerSideProps,getStaticProps 默认情况下只会在构建时执行一次,之后的每次请求都会使用构建时的数据...使用 先看下 getStaticProps 如何使用,其实和 getServerSideProps 用法差不多: export default function GetStaticProps({ content...将 path 中的 params 传入 getStaticProps 中,执行 getStaticProps 获取返回值。...image.png fallback 此外上面的 DEMO 中可以看到 fallback 参数,fallback 其实有三个可选值:true、false 和 blocking,主要是用于控制访问动态路由时该地址未落地成静态页面时的处理

    2K30
    领券