Vue Router 基於 SPA,相較於傳統 MPA 有些本質上的差異。
Version
Vue 3.4
Vue Router 4.2
MPA
- MPA (Multi Page Application)
- 公司官網、活動網站、購物網站
不同 url
回傳不同 html
,可能有是實體 html 檔,也有可能是 SSR (Server Side Render)- 後端技術:PHP、RoR、JSP、.NET MVC、Node.js + EJS ….
- Router:由後端提供
SPA
- SPA (Single Page Application)
- Gmail
不同 url
都回傳index.html
,由 CSR (Client Side Render) 實現路由- 前端技術:Angular、React、Vue、Svelte …
- Router:由前端提供
優缺點比較
- User Experience
MPA
:切換 url 時,後端必須將 HTML 全部 render 好才會回傳 HTML,使用者體驗較差SPA
:切換 url 時,前端直接 render HTML,使用者體驗較佳
- SEO (Search Engine Optimization)
MPA
:每頁有獨立的 HTML,可在<head>
內提供<meta>
,有助於 Google、Facebook、Twitter … 的 SEOSPA
:只有一個index.html
,<head>
內的<meta>
是固定的,SEO 困難
Conclusion
- 也還是有其他方法可解決 SEO,如 Nuxt (基於 Vue 的 SSR 後端 framework)、VitePress (基於 Vue 的 SSG (Static Site Generator))