在过去的几年中,Vue.js已成为Web应用程序开发的流行选项。用户变多后,这个框架开始将触角伸向了静态站点生成,一个曾经由React统治的领域。
就像React这边的Gatsby和NextJS一样,Vue.js这边支持静态网站生成的框架也有不少。但考虑到它们提供的众多功能,想要挑一个合适的并不容易。
因此在本文中,我会向大家介绍用于静态站点生成的四大Vue.js框架,并对它们做详细对比,帮助找到适合你用例的选项。
1.Nuxt.js
名单上的第一个是Nuxt.js,这是一个基于Vue.js构建的开源高级框架。Nuxt.js会抽象出客户端-服务器分发细节,从而简化Web开发工作。
Nuxt.js基于一个可靠的模块化架构,并且有50多种模块方便用户入门。这些模块提供了内置支持,以将PWA特性和标准功能(例如GoogleAnalytics)引入你的应用程序。
Nuxt.js的最大优势之一是nuxtgenerate命令。
使用这个命令时,你可以轻松生成网站的完全静态版本。
优点
缺点
2.VuePress
VuePress是另一个基于Vue.js的静态站点生成器,它最初是作为文档生成系统开发的。但在1.x版发布之后,VuePress演变成了静态文件生成器。
在VuePress中,每个页面都被视为一个markdown文件,它们被渲染为HTML页面,并在加载页面时充当一个单页应用程序。
根据他们的官方文档,VuePress包含两个主要部分:
对比VuePress与Nuxt.js的话,我们可以看到Nuxt.js几乎可以完成VuePress能够完成的所有工作。
但是,VuePress针对以内容为中心的静态网站创建做了更多优化,而Nuxt.js则更多专注于Web应用程序开发。
GitHub统计数据这块,VuePress的存储库有超过17800个星和340多位贡献者。FinTech、IADC和Directus等公司也在使用它。
3.Gridsome
我们名单上的第三位选手是Gridsome,它以构建轻巧快速的静态网站而闻名。与React中的Gatsby相似,Gridsome是一个数据驱动的框架。Gridsome使用一个GraphQL层从各种源中获取内容,然后从中动态生成页面。
GraphQL充当Gridsome的内容管理系统。
你可以使用gridsomedevelop命令在本地运行项目,以在localhost:8080/___explore处浏览这个GraphQL数据层。
同样,你可以使用gridsomebuild来构建你的网站,它将生成可用于生产环境的优化版HTML文件。
至于Gridsome的GitHub统计数据,它只有7000个星和100位孤单的贡献者。此外,Gridsome还带有一些独特的功能,以同其他产品更好地竞争。
4.Saber
Saber.js是另一个静态站点生成器,其具备大量内置功能。
与Gatsby和Gridsome类似,Saber允许你使用你想用的数据来创建静态网站。你可以从不同的文件系统中提取数据。有了Saber,你就不用操心GraphQL了。
Saber将其文件系统用作路由API(这和Nuxt.js非常像),并且具有高度可扩展性。尽管Saber目前仅支持Vue.js,但它的团队也计划扩展对React的支持。
由于Saber仍然是这一领域的新手,因此它的GitHub存储库只拿到了2000星。我相信一旦这个框架稳定下来,这些数字就会有所改善。
总结
对于静态站点生成器领域来说,React曾是人们的首选,并且统治了这一市场。但是,Vue.js与我们上面讨论的这些出色框架有望改变这种情况。此外,其中一些框架对基于React的框架构成了真正的威胁。
例如,Gatsby和Gridsome的行为看起来非常接近。此外,Gridsome在性能、学习曲线、社区规模等方面都能与Gatsby相提并论。
对比基于Vue.js的和基于React的静态站点生成器,我们可以看到Nuxt.js、VuePress和Gridsome等框架具有与Gatsby和NextJS竞争的实力。
在对比以上四个框架时,根据GitHub和npmtrends.com的统计数据,可以看到Nuxt.js和VuePress处于领先地位。