介绍
网络开发通常涉及使用不同的开发堆栈,包括LAMP堆栈,MEAN堆栈,MERN堆栈等 JAMstack是另一个堆栈,为开发人员提供一些独特的好处。
什么是 JAMstack?
静态网站最近在使用和功能方面不断增长,不再是HTML和CSS文件的集合,静态网站可以做处理付款、处理实时活动等事情。称这些网站为静态
会破坏和低估其功能性。
JAMstack 代表 JavaScript, APIs,和 Markup. 根据官方网站(https://jamstack.org),JAMstack 意味着:
基于客户端JavaScript,可重复使用的API和预建的标记的现代Web开发架构。
这个术语是由Netlify的联合创始人Mathias Biilmann(https://www.netlify.com)提出的。
有了JAMstack,我们不再谈论操作系统,Web服务器,后端编程语言或数据库等特定技术,这是构建网站和应用程序的新方式,提供更好的性能,更高的安全性,更低的扩展成本和更简化的开发者体验。
为什么是 JAMstack?
什么时候应该考虑使用JAMstack?您可能考虑使用JAMstack的几个原因包括:
- **更快的性能:**由于JAMstack网站是预建的HTML和资产,它可以通过CDN服务
- **更高的安全性:**JAMstack网站减少服务器和数据库表面漏洞
- **更低的成本:**运行JAMstack网站的成本通常低于相似的替代方案,因为它使用的资源更少
- 更好的开发人员体验: 使用JAMstack,应用程序后端和前端之间没有密切的连接。
此外,越来越多的服务将动态功能整合到JAMstack网站中,包括:
Netlify Identity,允许登录管理、登录、密码恢复等功能 *使用 Algolia和 Lunr.js进行完整文本搜索。
如何用 JAMstack 建造
为了使用 JAMstack 构建一个项目,它必须满足以下标准:
- **JavaScript:**请求/响应周期中的任何动态编程都由JavaScript处理,完全运行在客户端上。这可能是任何前端框架,如 Vue.js, React, Angular,等等,甚至是瓦尼拉JavaScript
- **API:**所有服务器侧流程或数据库操作都被抽象化为可重复使用的API,可以通过HTTP访问JavaScript。这些都可以自定义建造或利用第三方服务( _*) **标记:**模板标记应该在部署时预先建造,通常使用网站生成器如 GatsbyJS, [Nuxt.js](LINK
考虑到这些问题,以下项目是 **不是 ** JAMstack 项目:
- 一个使用服务器侧 CMS 构建的项目,如 WordPress、Drupal 等
- 一个依赖 PHP、Node 或其他任何后端语言的单一服务器运行网页应用程序
- 一个单页应用程序(SPA),使用同形渲染来在运行时构建服务器上的视图
使用 JAMstack 构建项目时,请记住以下最佳实践:
- 整个网站应该在 CDN 上服务
- 使用原子部署
- 使用即时缓存无效
- 一切都应该在 Git 上生活
- 标记构建应自动化
结论
在本文中,您了解了什么是JAMstack,以及为什么您可能会考虑在下一个项目中使用它,您还了解了JAMstack站点的项目要求。
您可以通过官方网站(https://jamstack.org)和资源(https://jamstack.org/resources/)部分来了解更多关于 JAMstack的信息。