JAMstack 圆桌会议的随机笔记

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 提供适用于旅程各个阶段的云产品。 立即开始使用 200 美元免费积分!

上周末,我在 Web Unleashed 主持了一场 JAMstack 圆桌讨论。 这里只是一些来自那次体验的随机笔记。

  • 起初,我很惊讶地发现,有些人 真的对 JAMstack 中的“M”代表“Markdown”(编译成 HTML 的语言)还是“Markup”(HTML 中的“M”,有时与 HTML 交换使用)感到困惑。 这种困惑是真真切切存在的。 答案是:JAMstack 不需要 Markdown。 这种困惑源于 Markdown 经常与静态网站生成器一起使用,而静态网站生成器又经常与 JAMstack 一起使用。
  • 我第一次意识到,每个托管在 Netlify 或 GitHub Pages 或 S3 存储桶(“静态托管”)上的网站都是 JAMstack。 SHAMstack,确实! 🙂 。 JAMstack 的 静态托管 (SH) 部分可能是最重要的方面。
  • 一个只有一个 index.html 文件的网站,其中包含 <div id="root"> 和一个在客户端渲染其余内容的 JavaScript 包,可以是 JAMstack。 假设它需要的数据要么是内置的,要么来自另一个服务器上的 API(不是托管该 index.html 文件的服务器),那么它就是 JAMstack。
  • 技术上讲 JAMstack 与精神上讲 JAMstack 之间存在区别。 上面提到的可能是更偏向技术,而较少偏向精神。 后者希望你预先渲染更多网站内容,而不是什么也不渲染。
  • 预渲染很好,因为它:速度快,可以 CDN 托管,安全且 SEO 友好。 许多框架都将它作为其功能的一部分提供,因此你也可以利用它。 预渲染并不意味着静态,JavaScript 仍然可以加载并变得更花哨。
  • 不可否认,静态网站生成器和 JAMstack 是 BFF。 但是 JAMstack 希望你考虑更多。 如果你有 50,000 个产品页面,无法渲染所有内容,因为生成速度太慢或不切实际怎么办? 没问题,你可以预渲染其他页面,但只渲染产品页面的外壳,并在需要时从 API 获取产品页面数据。 如果某些页面绝对无法静态托管怎么办? 没问题,你可以将可以静态托管的页面代理到一个静态服务器,并将其他页面保留下来。 想全方位使用静态托管,但需要服务器来执行某些功能? 考虑无服务器函数,它们有点像静态托管的后台精神伙伴。
  • 人们真的很想知道为什么。 为什么要费心去处理这些东西呢? 如果你可以用 WordPress 构建一个满足你所有需求的网站,为什么不直接这样做呢? 我最终从功能的角度为我使用 WordPress 进行辩护。 如果我有无限的时间和一张白板,即使我坚持使用 WordPress 作为 CMS,我认为我可能会走上一条至少进行一些预渲染的道路,如果没有完全解耦,也会构建我自己的前端,然后只通过 API 使用数据。 但也许对为什么的最有说服力的答案归结为速度安全弹性,当你使用 JAMstack 时,所有这些都会立即随之而来。 它提供了一个非常棒的基础来构建。