跳轉到內容

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應用,但它絕不僅限於瀏覽器。您可以

Vue 的使用方式已載入