接觸過SPA(單頁應用)的世界後,現在來看SSR的資料我感到萬分痛苦…。我們先假想在不久後的將來,也許某天Boss說:「這個系統從SPA改成SSR」我們會想起這天含著淚研讀後的成果…
◎先說結論:原本是想在現有專案直接加入SSR的,但是難度對我來說還是太高了,我們試著先理解Vue-SSR在做什麼(別想著越級打怪啊!TT)
怎麼選全看SEO: 當然雙方各有優缺點,網路上種種比較:CSR引入太多JS初始載入太慢、SSR一直跳動使用者體驗不佳…但最大的差別還是在於多數瀏覽器不支援JS解析,因此SSR在SEO(搜尋引擎最佳化)上的表現更好!
– index.html
– server.js # main application server
– src/
– main.js # 導出跟環境無關的(通用的)應用代碼
– entry-client.js # 將應用掛載到DOM元素上
– entry-server.js # 使用某框架的SSR API渲染該應用
事實上,當前端框架盛行的時代又要讓SEO好好表現,是有很多熱門的混搭用法讓開發者可以更有效的處理SEO的問題:Vue ft. Nuxt.js
。但如果你仍考慮要透過Vue-SSR
來開發不如看看以下的提示:
getSSRProps
指令鉤子才會有作用在為你的應用使用 SSR 之前,你首先應該問自己是否真的需要它。這主要取決於首屏加載速度對應用的重要程度。例如,如果你正在開發一個內部的管理面板,初始加載時的那額外幾百毫秒對你來說並不重要,這種情況下使用 SSR 就沒有太多必要了。如果你調研 SSR 只是為了優化為數不多的營銷頁面的 SEO (例如 /、/about 和 /contact 等),那麼你可能需要 SSG 而不是 SSR。SSG 也非常適合構建基於內容的網站,例如文檔站點或者博客。
改成這樣不如重寫: 困難點就是在於原先符合CSR需求的語法,全都要因為SSR加進來之後全部變調!就這樣,雖然Vue發展到後期也提供了具備SSR的服務,但看完這些數不盡的延伸問題:我真的不要了。
Nuxt.js是基於Vue.js所發展的框架,主要就是要來解決CSR辦不到也很難辦到的SSR和SEO問題:
寫這篇文章的初衷從「我要試著把現有專案套用Vue-SSR!」變成了「少走點冤望路吧」,雖然真的是因為能力不足改寫不成TT。但每次的失敗就會促成認識新技術的開始,有機會再來入手Nuxt.js!
參考資料
手把手建立Vue-SSR開發環境
服務端渲染 (SSR)
SSR 還是 CSR? 3 分鐘了解網頁渲染對 SEO 的影響
什麼是 CSR (SPA) 與 SSR?如何影響 SEO? 優缺點與誤解完整分析 (Rendering)
Nuxt.js