Ⅰ 快速在你的vue/react應用中實現ssr(服務端渲染)
前言
了解Vue和React,我們通常使用它們構建客戶端應用程序,通過生成DOM和操作DOM實現客戶端渲染。然而,SPA應用的首屏渲染時間過長,且存在嚴重的SEO問題。因此,我們需要考慮服務端渲染(SSR)來解決這些問題。
服務端渲染(SSR)通過伺服器端完成HTML結構拼接,直接將拼接好的HTML發送到瀏覽器,使其成為可交互頁面的技術。對於SSR頁面,搜索引擎可以直接獲取到內容,而客戶端渲染的應用則需要執行伺服器返回的JS才能得到正確的網頁內容。本文將介紹幾個常用的基於Vue和React的SSR技術實現方案。
摘要SSR技術實現方案
我們將列舉幾個基於Vue和React的SSR實現方案。方案包括使用node+Vue-server-renderer實現Vue項目服務端渲染、使用node+React renderToStaticMarkup實現React項目服務端渲染,以及使用谷歌的Rendertron實現服務端渲染。最後,我們簡要介紹如何在本地運行Rendertron並實現服務端渲染。
使用谷歌Rendertron實現服務端渲染
Rendertron是Google推出的一種技術,能夠使得SPA應用被不支持執行JS的搜索引擎爬取渲染後的內容。其原理是通過使用Headless Chrome在內存中執行JS,得到完整內容後返回給客戶端。通常,我們會將Rendertron部署為獨立的HTTP服務,並通過配置中間件或路由規則,使得當檢測到搜索引擎爬蟲的UA時,請求被代理到Rendertron服務。這樣可以實現服務端渲染,而無需考慮服務端渲染的部分。
具體實現
首先安裝Rendertron,通常在GitHub中可以找到安裝和使用方法。在安裝前,建議先安裝Docker,以獲得便捷的安裝和啟動體驗。本地運行Rendertron,安裝好Docker後,全局安裝Rendertron,然後使用谷歌瀏覽器的cli啟動服務。通過輸入命令,可以在命令行中獲取本地服務的地址,如localhost:3000。將此地址與網站地址結合,使用Rendertron服務進行渲染。
使用Rendertron的好處是它可以按照SPA模式開發項目,無需為兼容服務端渲染而編寫額外的兼容代碼。
後期展望
未來,我們將繼續探索大前端技術,包括HTML5游戲、Webpack、Node.js、Gulp、CSS3、JavaScript、NodeJS、Canvas數據可視化等。歡迎加入《趣談前端》技術群,一起學習討論,共同探索前端的邊界。
Ⅱ 什麼是服務端渲染
服務端渲染,簡稱 SSR,是現代 Web 應用中的一種渲染方式。它與傳統的客戶端渲染(CSR)在頁面的構建和呈現方式上有所不同。SSR 的核心思想是在伺服器端預先組裝 HTML,然後將這個完整的 HTML 文檔發送到瀏覽器,由瀏覽器直接解析並展示在頁面上。以下是服務端渲染的概述、由來、利弊以及實現步驟的詳細描述。
服務端渲染的定義
服務端渲染的由來
服務端渲染的利弊
同構與實現
實現服務端渲染的關鍵步驟包括: