這個章節會介紹各種使用Vue的情境
Vue 可以作為獨立腳本使用-也就是不用執行 build 。假如你的專案後端渲染了大部分的 html 結構,又或者是你的前端邏輯很簡單,你就可以使用 Vue ,把 Vue 想成是 jQuery 的替代品就好。
Vue 提供了一個叫做 petite-vue 的專案,他是專門設計給增強式開發的情境做使用。
你可以使用 Vue 來 build 原生的網頁元件(這裡以後會介紹),這種元件不論是用何種方式渲染的 html 頁面,都可以做嵌入(包含各種舊專案、靜態網站甚至是不同框架),如此一來便不需要考慮你的專案最終的應用情境。
一般來說我們學習 Vue 時會做的 side project 都是屬於此類型,若你的專案在前端有豐富的互動、複雜的程式邏輯等等,就很適合使用 Vue。 Vue 會控制整個頁面、負責抓取與處理資料,並在無需重新加載的情況下提供切換頁面功能。
純粹的 SPA 會遇到像是 SEO 不好的問題,因為在 Vue 的 JS 加載完之前, html 都會是空的。 Vue 提供了一系列的 api ,讓伺服器可以先將 Vue 渲染成 html 字串傳到前端,這樣在 js 載入完畢之前使用者就能先看到 html 頁面了,之後 Vue 還會再 『hydrate』應用程式,讓他變得可互動,這些就稱作 server-side rendering (SSR)。
Nuxt.js 就是 Vue 的 SSR 框架。
如果所需資料是靜態的,那麼伺服器端渲染是可以提前完成的,這代表我們可以將整個應用程式渲染為 html 並作為靜態文件部署。這樣可以增強性能以及讓部屬變的容易。這種技術稱為 SSG 或 JAMStack
SSG 有兩種風格:
單頁 SSG 比較適合重視互動或是常常需要換頁的情況,其他情況則是多頁 SSG 會比較好。
VitePress 是 Vue 團隊開發的靜態站點生成器,Vue 的官方文件也是用 VitePress 產生的。此外 Nuxt 也有提供靜態站點生成,甚至可以混用 SSG 與 SSR。
Vue 雖然是為瀏覽器設計,但他也可以應用在其他地方: