动态生成页面通常需要在每次用户访问时,通过服务器端运行逻辑(如 PHP、Node.js 或其他后端技术)生成 HTML 页面。...与此不同,SSG 的理念是通过在构建阶段预先生成静态 HTML 页面,这些页面在用户请求时无需经过服务器端计算,直接从 CDN 或服务器中返回。...模板渲染:工具会结合获取的数据和预定义的模板,生成完整的 HTML 页面。静态资源生成:除了 HTML 页面,SSG 还会生成关联的 CSS、JavaScript 和其他静态资源。...通过 getStaticProps 方法,开发者可以在构建时获取数据并生成静态页面。Gatsby:这是一个基于 React 的 SSG 框架,以其丰富的插件系统和 GraphQL 数据查询功能而闻名。...SEO 表现差:由于页面是动态生成的,搜索引擎爬虫难以索引完整内容。扩展性受限:高峰流量时,服务器负载高,响应时间显著增加。解决方案在迁移过程中,该公司选择了 Gatsby 作为 SSG 框架。
SEO 友好:借助 Next.js 等服务器端渲染库,React 可以生成 SEO 友好的 HTML 内容,易于搜索引擎抓取。...优点 服务器端渲染和静态站点生成:Next.js 支持服务器端渲染和静态站点生成,从而通过向客户端提供预渲染的 HTML 来加快初始页面加载速度并改进 SEO。...它对于需要服务器端渲染或静态站点生成的应用程序特别有益。Nuxt.js 可用于构建通用(同构)应用程序、单页应用程序(SPA)、静态网站,甚至作为处理 API 请求的中间件。...优点 服务器端渲染:Nuxt.js 提供内置的服务器端渲染,允许在页面交付给客户端之前在服务器上进行初始渲染。通过向搜索引擎爬虫提供完全渲染的页面并提供更好的用户体验,可以提高性能和 SEO。...缺点 学习曲线:与单独使用 Vue.js 相比,Nuxt.js 增加了复杂性,特别是对于刚接触服务器端渲染或静态站点生成的开发人员而言。
简介服务端渲染是一种Web应用程序开发技术,它将服务器端生成的HTML和CSS直接发送给浏览器,而不是使用JavaScript在客户端生成和渲染页面。...与客户端渲染相比,服务端渲染的优势在于:更快的加载时间:由于服务器端生成HTML和CSS文件,因此在浏览器中加载和显示页面的速度更快。更好的SEO:搜索引擎可以很容易地抓取和索引服务器端生成的内容。...Gatsby:Gatsby 是一个基于 React 的静态网站生成器,它使用 GraphQL 来查询数据,并在构建时生成静态 HTML 文件。...Laravel 的模板引擎可以帮助开发者在服务器端渲染 HTML。...Django 的模板引擎可以帮助开发者在服务器端渲染 HTML。
我们使用像Node.js、PHP、Java和Ruby on Rails这样的服务器端语言。 在我们的服务器中,我们使用像JSP和EJS这样的模板语言创建了视图。...在服务器上渲染 React 组件,然后将生成的 HTML 发送到浏览器。这可以提高 SEO 和初始加载时间。渲染过程在每个页面请求时发生。 什么是静态站点生成(SSG)?...使用Gatsby(一个具有 SSR 功能的静态站点生成框架)创建了我的应用 即使没有 JavaScript,我们仍然可以在我的应用上看到内容。那是因为用户收到了预渲染的 HTML!...然后,在 React 应用程序在用户设备上挂载后,第二次渲染会填入所有依赖于客户端状态的动态部分 总结: 预渲染和 Hydration 框架工作时的潜在错误及解决方法 第一次传递:我们看到预渲染的...可以使用 Gatsby.js、Next.js 和 Remix 来实现静态站点生成和 SSR。
在 React 框架之间已经有一些方面得到了标准化(例如"use client"),其他方面正在孵化中(例如Server Components 中的异步/等待)在测试版期间。...尽管这是某些类型应用程序(特别是需要登录的应用程序)的有效模式,但 React 的广泛使用下,很多开发人员希望从服务器预渲染内容。预渲染是指提前生成 HTML,而不是在用户设备上运行生成。...听起来好像所有 React 应用程序都应该进行服务器端渲染?现实情况当然更复杂。对于某些路由,生成静态资源并使用边缘网络(将资源放置在靠近用户的位置)可能会更好。...(例如代码拆分) 我们应该如何防止代码库中出现回归错误?(例如使用一致性和 linting) 我们应该如何为给定页面加载数据?(例如服务器端还是客户端) 我们应该如何部署 React 应用程序?...还有其他的 React 框架,但这些是在前 10000 个网站中检测到的(通过检查 Next.js 的__next元素和 Gatsby 的___gatsby)。
React 18 的主要产品 性能改进 更新了并发功能 服务器端渲染的重要改进 并发 并发将同时执行多个任务。...批更新处理 自动更新批处理意味着在单个渲染中反应多个状态更新以提高性能的组称为批处理。React 提供了最佳性能,因为它避免了不重要的重新渲染。...它还阻止组件呈现半完成状态,同时在创建错误时更新单个状态变量。例如,在餐厅,服务员在选择第一道菜后不会跑到他的厨房,而是等待完成订单。...React 18在更新后启动的自动批处理中,它会重新渲染一次,而不管其状态来源。 服务器段渲染SSR 服务器端渲染逻辑是扩展。在 React 的 SSR 应用中,有一些步骤是连续发生的。...Gatsby 从 v3.7 开始支持 React 18 和并发特性。
Gatsby 是一个令人难以置信的静态站点生成器,它允许使用React作为渲染引擎引擎来搭建一个静态站点,它真正具有现代web应用程序所期望的所有优点。...它通过在构建时通过服务器端渲染将动态的 react 组件呈现为静态 HTML 内容。...创建 React 模板 当 Gatsby 支持服务器端渲染(对字符串)的 React 组件时,我们可以使用 React 编写我们的模板( 也可以使用Preact )。...除非有什么动态处理( componentDidMount 的逻辑,state 变化),否则这个组件将是纯粹的,通过 React 渲染引擎、GraphQL 和 Gatsby 生成的HTML。...现在我们有一个由 Gatsby 所生成的功能完整的博客,其中有真正的内容在 Markdown 里,有一个博客列表,以及在博客中浏览的能力。
然而,挂载阶段还没开始,$el 属性目前尚不可用。 beforeMount 在挂载开始之前被调用:相关的 render 函数首次被调用。...function () { // Code that will run only after the // entire view has been re-rendered }) } 该钩子在服务器端渲染期间不被调用...该钩子在服务器端渲染期间不被调用。 deactivated 被 keep-alive 缓存的组件停用时调用。 该钩子在服务器端渲染期间不被调用。 beforeDestroy 实例销毁之前调用。...该钩子在服务器端渲染期间不被调用。 destroyed 实例销毁后调用。该钩子被调用后,对应 Vue 实例的所有指令都被解绑,所有的事件监听器被移除,所有的子实例也都被销毁。...该钩子在服务器端渲染期间不被调用。 errorCaptured 当捕获一个来自子孙组件的错误时被调用。此钩子会收到三个参数:错误对象、发生错误的组件实例以及一个包含错误来源信息的字符串。
其实这里 GraphQL 并不是作为服务器端部署,而是作为 Gatsby 在本地管理资源的一种方式。...我在修改 starter 时踩到一个坑是复制组件时忘了修改 static query 查询语句的名称,导致重名报错。 避免错误最好方式是在 GraphiQL 编辑器中写好运行无误再复制到组件中。...Gatsby 如何生成特定页面 一般来说,在 /src/pages/ 目录下的组件会自动生成相应路径的页面,但如果是其它类型的文件就不会了。...这样我们在模板组件中通过 pageContext.id 便可判断当前渲染的文件。 通过实现自定义路径基本上可以了解 Gatsby 页面生成的方式了。...草稿模式 草稿模式即可以将文章保存为草稿而不被渲染出来。方式是在 front matters 中设置一个 draft 布尔域,以此域作为渲染参考。
老项目迁移会存在一定成本,可以参考我之前的文章《将 React 应用迁移至 Vite》 四:Gatsby Gatsby 不仅仅是一个静态网站生成器,它更是一个渐进式 Web 应用生成器。...通过 Gatsby 建立的网站,很容易被搜索引擎检索到,而且页面的渲染性能非常好,完美支持个人网站、博客、文档网站,甚至是电子商务网站。...创建 gatsby 应用 npm init gatsby 在命令行中选择开发语言,是否使用 CMS、是否支持、md、mdx 等 创建完成后,在命令行运行 npm run dev,打开 http://localhost...,然后在函数中使用查询的数据进行渲染。...SSR - 服务器端渲染 SSG - 静态站点生成。 ISR – 增量静态再生,可以再次从 API 获取数据,并且生成静态页面,最适合常见的资讯类、新闻类网站。
2.Next.js:如果你是在用 Node.js 构建服务端渲染的网站 Next.js 为您提供生产环境所需的所有功能以及最佳的开发体验:包括静态及服务器端融合渲染、 支持 TypeScript、智能化打包...3.Gatsby:如果你是在构建面向内容的静态网站 Gatsby.js 是基于 React 构建的、速度非常快的、现代化网站生成器。...超越静态网站:用 Gatsby 可以构建博客、电子商务网站、成熟的应用程序等。...nwb:用于React应用程序、库和其他web npm模块的工具包 5.razzle:创建没有配置的服务器呈现的通用JavaScript应用程序 Razzle是类似于next.js的简单服务端框架,用于在服务端渲染...你可以将它简单的理解为一个专注性能的类 next.js 前端框架,并通过约定、自动生成和解析代码等方式来辅助开发,减少我们开发者的代码量。
Astro Web 框架旨在普及一种叫作“组件岛”的前端架构,这也是 Astro 推出混合渲染的动机: 在将近一年的时间里,Astro 都只允许用户在静态(SSG)和服务器(SSR)渲染之间二选一。...在之前的版本中,使用 Astro 的开发人员必须在静态渲染(针对静态的、内容主导的网站)或服务器端渲染之间做出选择。...有了混合渲染,开发人员可以在构建时预渲染特定的页面或服务器端点,无需放弃已部署的服务器。 大型网站通常有适合使用预渲染技术生成内容的部分,也有需要在请求时生成内容的部分。...例如,电子商务网站会预先渲染主页和各种以营销为重点的内容,而产品、价格或折扣页面则使用服务器端渲染,以呈现最新可用的数据。这种混合方法可能会降低渲染网页所需的计算资源量和相关的成本。...Astro 新版本还提供了重新设计的错误叠加,改进了对开发阶段模块热加载的支持,并使用了新发布的 Vite 4.0 来构建内容。
技术栈和特性 Angular 8 Firebase 服务器端渲染 CSS 网格布局和 Flexbox 移动,响应迅速 暗色模式 漂亮的界面 我之所以非常喜欢这个项目,其中一个原因是你学到的东西并不是相互独立的...5 用 Next.js 构建一个电子商务购物车 Next.js 是创建 React 应用程序的最流行框架,它支持开箱即用的服务器端渲染。...6 用 Nuxt.js 构建一个完整的多语言博客网站 Nuxt.js 之于 Vue 就像 Next.js 之于 React——一个结合了服务器端渲染和单页应用程序的强大框架。...7 用 Gatsby 构建一个博客 Gatsby 是一个很好的静态站点生成器,它在底层使用了 React 和 GraphQL。这个项目看起来是这样的。...Gridsome 与 Gatsby 一样,两者都使用 GraphQL 作为数据层,不一样的是 Gridsome 使用了 VueJS。它也是一个很棒的静态站点生成器,可以帮你构建出很好的博客。
使用渐进 (Re)Hydration 进行流式服务器端渲染(SSR + CSR) 为了最大程度地缩短“可交互时间”与“第一个有效内容绘制“之间的间隔,我们一次渲染多个请求,并在生成内容时分批发送内容。...客户端预渲染 与服务器端预渲染相似,但不是在服务器上动态渲染页面,而是在构建时将应用程序渲染为静态 HTML。...Gatsby[39] 是使用 React 的开源静态站点生成器,在构建过程中使用 renderToStaticMarkup 方法而不是 renderToString 方法构建生成一个简单的不需要 DOM...那么,选择客户端渲染还是服务器端渲染?通常,对于完全客户端渲染框架要限制在绝对需要它的页面上才使用。对于高级应用程序,仅仅依靠服务端渲染也不是一个好主意。...可以通过使用 stale-while-revalidate 来避免这种减速;它基本上定义了一个额外的时间窗口,在此期间,缓存可以使用过期的资源,只要它可以在后台重新异步验证它的状态即可。
让我们分解Web的渲染和首字母缩略语,让你得到一些急需的休息和放松。## 什么是渲染?渲染是生成HTML标记以在浏览器中显示网页的过程。...## 服务器端渲染(SSR)随着Web的发展,出现了更大的站点和更动态的体验的需求,从而出现了服务器端渲染(SSR)的崛起。SSR是一种渲染方法,其中Web页面在请求时在服务器上构建。...## 静态站点生成 (SSG)静态站点生成(SSG)是预先生成HTML页面的过程,以便在不需要服务器端渲染(SSR)或客户端渲染(CSR)的情况下立即向用户提供服务。...当您使用SWR呈现特定页面时,该页面的一个版本将在初始构建期间进行静态生成和缓存。当该页面被更新时,不会立即触发该页面的重建,而是在下一次有人请求该页面时进行。...您不会希望在显示准确且最新的数据(例如定价数据)的页面上使用 SWR。此外,如果您正在使用 SWR/ISR 生成新页面,则需要生成回退页面,以确保您的网站不会显示错误或提供 404。
用户首次访问 Gatsby 网站时会发生这些事情: 用户请求一个页面。 服务器将静态生成的 HTML 文档发送到用户的浏览器,然后浏览器开始渲染页面。...在 2020 年 2 月对 100 万个首页的调查中,WebAIM 发现使用 React 的网页的可访问性错误比平均水平高 5.7%;而使用 Vue 的网页则高出 25%。...静态渲染和水化的页面还是比完全客户端渲染的 React 应用(如 create-react-app 生成的页面)要好得多,后者没有 JavaScript 就没法用。...例如,在 Eleventy 中没有一种优雅的方法来生成响应式图像。...相比之下,Gatsby 中出色的 gatsby-image 插件可以生成延迟加载和响应式的图片元素,并能在加载全分辨率文件后在低分辨率或 SVG 版本的图像间平滑切换。
另一种可能,就是构建的是需要在服务器端进行渲染的站点,其中各个 HTML 页面都是由服务器在收到请求时全新构建出来的。这指的就是那些需要通过各个页面为用户带来自定义体验的动态站点。...Next.js 和 Gatsby 使用的是默认为 SPA 的 React,所以并不完全适合我的用例。当然,我们可以想办法用 Next.js 或 Gatsby 生成静态站点,再将站点转换成多页应用程序。...Eleventy 的缔造者 Zack Leatherman 表示,其实有很多方法可以定义服务器端渲染。那如果我不清楚自己需要哪种类型的服务器端渲染,或者根本就不需要服务器端渲染,又该如何选择框架方案?...Astro 的核心维护者 Ben Holmes 对缓存和服务器端渲染进行了一系列实验,并发现服务器端渲染在速度上已经能跟静态站点并驾齐驱。...也就是说,即使我们减少静态页面预构建、将更多内容交由服务器端渲染,网站的整体速度仍然可以保持在不错的水平。 就是说服务器可以提供更好的性能,但各种不同的服务器端渲染类型还是让人难以取舍。
比如说 Eleventy,其实它更像一种纯粹的静态站点生成器,而不能称为真正的框架(但如果你正好在用 Gatsby,那 Eleventy 确实要更胜一筹)。...在构建期间,大家用不上的东西都会被剥离出去,代码则被转译成普通 JavaScript。也就是说,Svelte 的捆绑包只相当于 React 的几分之一。...Fresh Fresh 是一套基于 Deno 的“孤岛”式架构服务器端渲染前端框架,而且比推荐清单里的其他项目都要年轻一些。...ASTRO 适用于: 打算构建主要基于静态内容或者 Markdown 的网站(包括一些服务器端渲染或逻辑)、想把发布的 JavaScript 控制在最低程度,而且打算沿用自己熟悉的前端框架的前端开发者。...Qwik Qwik 使用一种新的水合与性能优化方法,在服务器端渲染 React 类代码(JSX)。
例如它没有花哨的样式解决方案(Styling Solution)(只有纯 CSS)和服务器端渲染,却具有良好的功能封装以及开发体验。 Axios Axios 库是最广泛使用的HTTP客户端。...它能同时在用户端(在用户端发起AJAX请求)与服务器端(在 Node.js 环境中)使用。...它可作如下用途: 在真正的浏览器中进行自动化界面测试; 对服务器端渲染的页面进行截图; 使用Google Chrome的保存为PDF的功能,生成PDF文件; 前端框架 前端框架方面向来是兵家必争之地,不过如今已呈三家鼎足分立...Nuxt 则是一款基于 Vue.js 的更高级的框架,它能让我们流畅地开发具备服务器端渲染能力的 Vue.js 应用,而它的通用性使我们能用同样的代码库来生成一份 SPA,甚至一个静态网站。...值得注意的是今年最有人气的静态网站生成器 Gatsby 也在数据处理中使用了 GraphQL 。
领取专属 10元无门槛券
手把手带您无忧上云