外观
Vue 使用方式
我们认为没有一种适用于所有网站的“一刀切”方案。这就是为什么 Vue 被设计成灵活且可逐步采用的。根据您的用例,Vue 可以以不同的方式使用,以在堆栈复杂性、开发人员体验和最终性能之间达到最佳平衡。
独立脚本
Vue 可以作为一个独立的脚本文件使用 - 不需要构建步骤!如果您已经有一个后端框架渲染了大部分 HTML,或者您的前端逻辑不够复杂,不需要构建步骤,这是将 Vue 集成到您的堆栈中最简单的方法。在这种情况下,您可以认为 Vue 是 jQuery 的更声明式的替代品。
Vue 还提供了一个名为 petite-vue 的替代分布,专门针对渐进式增强现有 HTML 进行优化。它具有较小的功能集,但非常轻量级,并且在使用无构建步骤的场景中具有更高的效率。
嵌入式 Web 组件
您可以使用 Vue 来 构建标准 Web 组件,这些组件可以嵌入到任何 HTML 页面中,无论它们如何渲染。此选项允许您以完全无差别的方式使用 Vue:生成的 Web 组件可以嵌入到遗留应用、静态 HTML,甚至是使用其他框架构建的应用中。
单页应用(SPA)
某些应用需要在前端有丰富的交互性、深度会话和复杂的状态逻辑。构建此类应用的最佳方法是使用一种架构,Vue 不仅控制整个页面,而且处理数据更新和导航,而无需重新加载页面。这种类型的应用通常被称为单页应用(SPA)。
Vue 为构建现代 SPA 提供了核心库和 全面工具支持,拥有出色的开发人员体验,包括
- 客户端路由
- 闪电般的构建工具链
- IDE 支持
- 浏览器开发者工具
- TypeScript 集成
- 测试工具
单页面应用(SPA)通常需要后端暴露API端点 - 但您也可以将Vue与Inertia.js等解决方案搭配使用,以获得SPA的优势,同时保留以服务器为中心的开发模型。
全栈/SSR
当应用对SEO和内容加载时间敏感时,纯客户端SPA存在问题。这是因为浏览器将收到一个几乎为空的HTML页面,并且在渲染任何内容之前必须等待JavaScript加载。
Vue提供了一等API,可以在服务器上将Vue应用“渲染”为HTML字符串。这允许服务器发送已渲染的HTML,使用户可以在JavaScript下载的同时立即看到内容。然后,Vue将在客户端“激活”应用,使其具有交互性。这被称为服务器端渲染(SSR),它可以极大地提高如最大内容渲染时间(LCP)等核心网络指标。
在上述范式之上构建了基于Vue的更高层次的框架,例如Nuxt,它允许您使用Vue和JavaScript开发全栈应用。
JAMStack/SSG
如果所需数据是静态的,则可以在时间上提前进行服务器端渲染。这意味着我们可以将整个应用程序预先渲染为HTML,并作为静态文件提供服务。这提高了网站性能,并使部署变得更加简单,因为我们不再需要在每个请求上动态渲染页面。Vue仍然可以“激活”这样的应用程序,在客户端提供丰富的交互性。这种技术通常称为静态站点生成(SSG),也称为JAMStack。
SSG有两种风味:单页和多页。两者都将站点预先渲染为静态HTML,区别在于
在初始页面加载后,单页SSG将页面“激活”为SPA。这需要更多的初始JS负载和激活成本,但后续导航将更快,因为它只需部分更新页面内容而不是重新加载整个页面。
多页SSG在每次导航时都会加载新页面。优点是它可以发送最小化的JS - 或者如果页面不需要交互,则可以不发送JS!一些多页SSG框架,如Astro,也支持“部分激活” - 这允许您使用Vue组件在静态HTML中创建交互式“岛屿”。
如果您预计会有非平凡交互、较长的会话长度或需要在导航间保持元素/状态,则单页SSG更适合。否则,多页SSG将是更好的选择。
Vue团队还维护了一个名为VitePress的静态站点生成器,它为这个您正在阅读的网站提供动力!VitePress支持SSG的两种风味。Nuxt也支持SSG。您甚至可以在同一个Nuxt应用程序中对不同路由混合SSR和SSG。
超越网络
尽管Vue主要用于构建Web应用,但它绝不仅限于浏览器。您可以