也许我最喜欢 Astro 的首要原因是,它将 JavaScript 组件创作体验带到了静态网站生成器世界,并且无需使用 JavaScript(除了您明确选择加入的部分)。这种 HTML 优先的方法也是我喜欢 Eleventy 的原因。只是,尽管 Eleventy 非常棒,但我更喜欢使用更现代的组件和更现代的模板。此外,我喜欢在 Astro 组件中触手可及的构建时 JavaScript 访问权限。
但是,如果 Eleventy 也提供 JavaScript 模板呢?它确实提供了一些——有一个插件 eleventy-plugin-vue(官方)看起来朝着这个方向发展得很好。但这是 Ben Holmes 的另一种方法:Slinkity。我将引用要点
- 🚀 解锁组件框架(React、Vue 和 Svelte)用于编写页面模板和布局模板。因此,您可以将现有的
.html
或.liquid
文件转换为.jsx
文件,并立即开始使用 React 构建网站上的路由。- 🔖 包含强大的短代码以将组件插入现有页面。将如下所示的行添加到您的 Markdown、HTML、Nunjucks 等中,然后见证奇迹发生:
{% react './path/to/component.jsx' %}
- 💧 在客户端水化这些组件驱动的页面。换句话说,您所有的 动态状态管理 都将在开发和生产环境中运行,无需任何额外设置。
- 🔗 (可选)将您的网站转换为单页应用程序。这为动画页面过渡、页面之间持久状态以及更多功能打开了大门!
它似乎将 Astro 的氛围带到了 Eleventy。它甚至使用了 Snowpack,这是 Astro 团队的构建工具。