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

静态网站生成器与服务器端渲染有啥区别

将网站部署到服务器之前,构建阶段生成HTML页面被称为“静态网站生成(Static Site Generation)”。这种方法涉及使用网站模板创建预构建页面,并在用户请求时立即交付给他们。...本节中,将向您展示如何使用getStaticProps函数为您网站生成静态页面。 getStaticProps函数是一种技术,它指示Next.js构建时使用返回props预渲染页面。...服务器端渲染(Server-side rendering)是服务器生成完整HTML内容,然后将完全渲染页面传递给用户浏览器。让我们来看一些服务器端渲染提供好处。...本节中,将向您展示如何使用getServerSide函数生成服务器渲染页面。 getServerSideProps函数是一种技术,它指示Next.js服务器使用返回props预渲染页面。...这意味着数据获取和页面内容生成服务器提前完成,并在用户请求时提供给用户。

22510

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

学习如何轻松构建可伸缩 React 应用程序:服务端渲染 SSR # 什么是 SSR SSR(Server-Side Rendering,服务器端渲染)是指将 React、Vue、Angular 等客户端渲染应用在服务器端执行一次...强大社区支持 Next.js 有一个非常庞大社区,因为这个框架仍在不断发展,日益受欢迎 快速刷新 Nex.js 应用程序上进行代码更改时,更改会在几秒钟内在浏览器反映出来 快速显示 Next.js...零配置 优秀开发者体验 使用 NextJS,我们花更多时间编写功能,而不是构建工具和 Webpack 挣扎 自动路由 NextJS 将项目结构化为页面,添加路由 数据获取 根据应用程序用例以不同方式呈现内容...构建时间限制 构建网站和应用程序时间是受限制 对于 Next.js 而言,添加新页面到网站或应用程序不是问题,然而,对于具有许多页面的应用程序,整个网站静态创建意味着构建时间可能会非常长 #...预渲染有两种类型,即: 静态生成(Static Generation) 服务器端渲染(Server-side Rendering) # 静态生成 构建时生成 HTML 页面,这些页面将在每个请求重用

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

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

本文中,将深入探讨这些核心特性工作原理、应用场景及最佳实践,通过代码示例演示如何在实际项目中高效利用Next.js实现高性能、高SEO友好应用。...使用getStaticProps获取静态数据页面组件中使用getStaticProps生命周期方法获取静态数据。该方法构建时运行,返回数据将用于生成静态HTML文件。...(SSR)服务器端渲染是指在服务器端生成HTML字符串返回给客户端,尤其适用于需要实时数据、个性化内容或动态路由应用场景。...使用getServerSideProps获取服务器端数据与getStaticProps类似,getServerSideProps也服务器端运行,但每次用户请求时都会触发。适合需要实时数据场景。...作为博主,将持续探索分享Next.js进阶技巧与最佳实践,帮助开发者们充分发挥其潜力,打造卓越用户体验与商业成果。

48110

React 服务端渲染

现代化前端项目,大部分都是单页应用程序,也就是我们说 SPA ,整个应用只有一个页面,通过组件方式,展示不同页面内容,所有的数据通过请求服务器获取后,进行客户端拼装和展示;这就是目前前端框架默认渲染逻辑...,此时返回页面就是结构和数据都有的完整内容了,这样浏览器展示首页数据同时也能加载 SPA 脚本,搜索引擎爬虫同样也能获取到对应数据,解决 SEO 问题;为了更好理解这个逻辑,画了一个流程图...,因为首次加载时,服务器会先将渲染好静态页面返回静态页面中再次加载请求 SPA 脚本; 基本原理:首页内容及数据,在用户请求之前生成为静态页面,同时加入 SPA 脚本代码引入,浏览器渲染完成静态页面后...;是构建时生成 HTML 方法,以后每个请求都共用构建时生成好 HTML; Next.js 建议大多数页面使用静态生成,因为页面都是事先生成好,一次构建,反复使用,访问速度快。...与 getStaticProps 共同使用,会根据不同请求参数生成不同静态页面,它使用方式比较特殊,代码文件要放在一个目录中,同时代码文件文件名,要使用 可选项 文件名形式,如\pages\

2.3K50

使用 NextJS 和 TailwindCSS 重构博客

+ Postgresql 优点: 服务端渲染(SSR) + 静态生成, 访问速度极快,全新 UI 支持换肤; TailwindCSS 在国外如火如荼,但是国内却很少看到在生产应用,对来说, TailwindCSS...而文章内容写完之后是通常不变,所以可以先将页面静态存储服务器,这样就可以大大减小数据库压力。 getStaticProps 构建请求数据。...,新写文章也需要生成静态页面,这时就可以将fallback 设置为 true, 如果设为 false,则在构建之外文章都将返回 404 页面。...与 TypeORM 对比 TypeORM 是一种传统 ORM,它将表映射到模型类。这些模型类可用于生成 SQL 迁移。然后,模型类实例在运行时为应用程序 CRUD 查询提供一个接口。...它使用 Prisma Schema,以声明方式定义应用程序模型。然后使用 Prisma Migrate 命令, Prisma Schema 会生成 SQL 迁移根据数据库执行它们。

2.3K20

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

getStaticProps返回静态页面匹配成功后,需要加载数据。...,部署不需要服务器,任何静态服务空间都可以部署,而缺点也是因为静态,不能动态渲染,每添加一篇博客,就需要重新构建。...为了区分需要更新页面,这里可以调接口时候传入更新页面路径,也可以传入fetch请求中指定collection变量。...传统 SSR 执行步骤 服务器,获取整个应用数据。 服务器,将整个应用程序数据渲染为 HTML 并发送响应。 浏览器,加载整个应用程序 JavaScript 代码。...客户端,将 JavaScript 逻辑连接到服务端返回 HTML(这就是“水合”)。 而以上每个步骤必须完成,才可以开始下一个步骤。

1.5K31

使用 NextJS 和 TailwindCSS 重构个人博客

,对来说, TailwindCSS 不仅仅是一个原子类超级样式库; 1、我们写样式时候,经常会写类名,团队成员之间会存在样式冲突可能,虽然我们可以使用 css modules 来避免,但却会存在取类名称疲劳问题...而文章内容写完之后是通常不变,所以可以先将页面静态存储服务器,这样就可以大大减小数据库压力。 getStaticProps 构建请求数据。...,新写文章也需要生成静态页面,这时就可以将fallback 设置为true, 如果设为false,则在构建之外文章都将返回404页面。...与 TypeORM 对比 TypeORM 是一种传统 ORM,它将表映射到模型类。这些模型类可用于生成 SQL 迁移。然后,模型类实例在运行时为应用程序 CRUD 查询提供一个接口。...它使用 Prisma Schema,以声明方式定义应用程序模型。然后使用 Prisma Migrate 命令, Prisma Schema 会生成 SQL 迁移根据数据库执行它们。

2.6K20

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

getStaticProps 主要用于构建时落地一些静态数据,但不同于 getServerSideProps,getStaticProps 默认情况下只会在构建时执行一次,之后每次请求都会使用构建数据...之后每次请求都会使用构建数据。...构建时 next.js 会将其构建为 html,并且还会构建一份 json 文件,存储 getStaticProps 返回值,访问时初次进入页面为该页面时会直接使用 html 内容,而非初次进入则会去请求该...开发时 getStaticProps 需要注意是,开发时也就是 next dev 时,getStaticProps 会在每次页面访问时被请求,也就是和 getServerSideProps 行为基本一致...调用 next build 命令,next.js 会进行页面数据收集,检测到动态路由时会尝试调用 getStaticPaths 获取其返回值。

1.1K30

CloudBase CMS + Next.js:轻松构建一个内容丰富站点

那么为每个页面都编写一个静态 html 页面呢?比如,为每篇文章都编写一个 html 文件,然后放在服务器,这样只要客户端请求某篇文章,服务器就把对应文章页面直接返回。...本文将通过带领你构建一个个人博客,以展示如何结合这两者,最终腾讯云云开发上部署站点。 Demo在线预览 ? 开启环境和项目 1....Next.js 应用构建期,就会对每个页面执行数据拉取逻辑,根据 React 组件构建 UI,渲染出最后 HTML 页面,接下来,我们要做就是,构建主页 UI,以及为主页编写拉取数据逻辑...一个 js 文件下,需要再导出一个 getStaticProps 函数。...所以,只需要在 getStaticProps 函数中得到数据返回即可。

2.4K20

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

我们将讨论使用Nx开发工具管理 monorepo 优势,学习如何使用这些工具构建Next.js应用程序。 本文代码可在GitHub找到。您可以在此处找到我们正在构建应用程序工作演示。...考虑一个场景,我们使用一些前端库或框架构建仪表板应用程序。此前端应用程序代码可能存储dashboard存储库中。此存储库使用 UI 组件可能存储一个名为 存储库中components。...因此,如果数据是服务器端获取,客户端也需要使用相同数据进行水化,而无需向 GraphQL 服务器做任何额外请求。...我们构建期间通过getStaticProps获取数据,这是一个 Next.js 函数。但是,如果我们构建期间获取数据,则数据可能会过时。所以,我们使用revalidate选项。...这是必要,因为我们正在使用Next Image 组件。 现在,如果我们重新启动服务器,我们应该能够http://localhost:4200/查看以下屏幕。

5.5K51

Next.js 13提供新实验性特性,实现App“动态无限制”

Next.js 团队最近主题演讲中解释了 Next.js 最新版本背后逻辑: Next.js 最初是一个用于构建动态服务器端渲染网站 React 框架。...设计 Next.js 时,我们没有针对单页应用进行优化,而是考虑帮助开发团队构建复杂应用程序。但是,动态总是伴随着许多限制。.../Link> @next/font( beta 版中发布)将自动优化字体(包括自定义字体),删除外部网络请求,以提高隐私性和性能。...一个代码库中处理客户端 JS 和 Node 运行时已经有点麻烦了,但在旧范式中,至少两端之间只有一个交互点(getServerSideProps/getStaticProps),而现在可以出现在每个组件边界...因此,当你尝试 beta 版文档中搜索如何使用新 /app 文件夹和构建 Next.js 应用程序新方法时,你会发现许多关于特性仍然缺失、未完成、可能发生变更等警告和注释。

2.3K20

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

仅加载您请求页面的代码也意味着页面变得独立,如果某个页面抛出错误应用程序其余部分仍然可以工作。...然后每个请求重用预渲染 HTML。 服务器端渲染: 每个请求生成 HTML 预渲染方法。...6.3 获取数据 (1)静态生成时获取数据 服务端构建生成静态页面之前,有时候需要获取一些数据,可以借助 getStaticProps 方法。...页面组件内,同时导出一个 getStaticProps 方法: export default function HomePage(props) { ... } // 导出异步获取数据方法 export...async function getStaticProps() { // 获取数据,例如从数据库、API、文件等 const data = ... // 返回参数将会按照 key 值赋值到

5.4K30

Next.js - SSR SSG CSR ISR Dynamic Routing

:服务端请求数据 -> 服务端渲染页面 -> 用户用户通过 next/link 或 next/router 跳转:客户端请求数据 -> 服务端执行 getServerSideProps 返回数据 ->...ISR (Incremental Static Regeneration) Next.js 中使用增量静态生成,只需 getStaticProps 中添加属性 revalidate,该动作在用户发起页面请求时执行...return { paths, fallback: 'blocking' }}export default Blog如上示例,用户发起请求后,服务端会渲染缓存该页面,再将预渲染页面返回给用户。...缓存期间内,用户请求会直接返回缓存;缓存时间结束后,用户再次请求,会重新渲染生成新缓存。使用 ISR,就可以在运行时实现静态页面生成,而无需重新构建整个网站。...Dynamic Routing Next.js 中配合使用 getStaticPaths + getStaticProps 即可实现动态路由预渲染,该动作 next build 时执行,示例代码:

1.2K20

React 必学SSR框架——next.js

服务器渲染(Server Side Render)并不是一个复杂技术,而 服务器渲染 与 服务器同构渲染 则是 2 个不同概念,重点在于:同构。...getServerSideProps(SSR)每次访问时请求数据 页面中export一个asyncgetServerSideProps方法,next就会在每次请求时候服务端调用这个方法。...方法只会在服务端运行,每次请求都运行一遍getServerSideProps方法 如果页面通过浏览器端Link组件导航而来,Next会向服务端发一个请求,然后服务端运行getServerSideProps...和getStaticPaths(SSG)构建请求数据 所谓SSG也就是静态站点生成,类似像hexo或者gatsbyjs都是build阶段将页面构建成静态html文件,这样线上直接访问HTML文件...使用getStaticProps方法build阶段返回页面所需数据。 如果是动态路由页面,使用getStaticPaths方法来返回所有的路由参数,以及是否需要回落机制。

7.5K20

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

一般来说,静态内容代码里写死,动态内容是来自数据库next中,图上静态内容会在服务器渲染一次,客户端再渲染一次,为什么?...SEO不友好:因为搜索引擎访问页面, 默认不会执行 JS,只能看到 HTML,而不会等待 AJAX 异步请求数据,所以搜索不到页面内容文章列表页面里,其实每个用户查到内容都是一样那为什么还需要在每个人浏览器渲染一遍呢...,比如都请求相同文章列表,那还需要在每个人浏览器渲染一次吗?...,返回一个 props,NextPage 渲染时候可以使用这个 propsgetStaticProps:export default function PostsIndex = (props)=> ...SSG静态化时机:开发环境:开发环境每次请求都会运行一次getStaticProps,这是为了方便修改代码时重新运行。

3.5K20

​未来全栈框架会卷方向

这里为什么说全球,是因为国内web发展方向主要是更封闭小程序生态 第一阶段前端框架之争中,不管争论主题是「性能」还是「使用体验」,最终都会落实到框架底层实现。...,最终会落实到什么竞争呢?...认为,会落实到「业务逻辑拆分粒度」,这也是各大全栈框架未来会卷方向。 本文会从「实现原理」角度聊聊业务逻辑拆分粒度。 逻辑拆分意味着什么 「性能」永远是最硬核指标。...虽然以上方式可以分离前端/后端逻辑,但一个组件文件只能定义一个getStaticProps方法。 如果我们还想定义一个执行时机类似getStaticPropsgetXXXData方法,就不行了。...,比如: 发起id为ID_1请求,后端会执行getStaticProps返回结果 发起id为ID_2请求,后端会执行getXXXData返回结果 实际,通过这种方式,可以将任何函数作用域内逻辑从前端移到后端

18630

从 Next.js 看企业级框架 SSR 支持

按参数获取数据,渲染页面: // pages/posts/[id].js export async function getStaticProps({ params }) { // 根据路由参数获取相应数据...最简单,同时性能也最优预渲染方式就是静态生成(SSG),把组件渲染工作完全前移到编译时: (编译时)获取数据 (编译时)渲染组件,生成 HTML 将生成 HTML 静态资源托管到 Web 服务器或...只服务端执行(根本不会进入客户端 bundle),返回静态数据会传递给页面组件(上例中Home)。...也就是说,要求通过getStaticProps提前备好页面所依赖全部数据,数据 ready 之后组件才开始渲染,生成 HTML P.S.注意,只有页面能通过getStaticProps声明其数据依赖...使用,完成之后浏览器拿到数据(客户端填上props),渲染出完整页面 fallback: 'blocking':不降级,并且要求用户请求一直等到新页面静态生成结束(实际就是 SSR,渲染过程是阻塞

3.8K11

基于ReactSSG静态站点渲染方案

那么在这种情况下,就忽然想到了博客站点构建方式,为了方便我会将博客直接通过gh-pages分支部署GitHub Pages,而GitHub Pages本身是不支持服务端部署,也就是说博客站全部都是静态资源...最开始把这个问题想特别复杂,但是实现时候发现只是实现基本原理的话还是很粗暴解决方案,渲染时候并没有想象中要处理得那么精细,当然实际要做完整方案特别是要实现一个框架也不是那么容易事情,...资源占用低: 静态网站只需要非常少服务器资源,这使得其可以低配置环境中运行,我们可以较低配置服务器借助Nginx轻松支撑10k+QPS网站访问。...很明显在前边我们提到将数据从数据库请求出来之后写入json文件就是个可选方式,我们可以代码构建时候请求数据,在此时将其写入文件,最后一并上传到CDN即可。...因此在这里我们可以通过预先定义一个HTML文件模版,然后将构建过程中产生内容放到模版以及新生成文件里,产生所有内容都将随着构建一并上传到CDN分发。 <!

11110
领券