Vue中SSR的作用是什么
Vue中SSR的作用是什么
SSR 是 Server-Side Rendering(服務(wù)端渲染)的縮寫,指的是在服務(wù)器端將 Vue 組件渲染成 HTML 字符串,然后直接發(fā)送給客戶端的技術(shù)。
與客戶端渲染(CSR)的主要區(qū)別
Vue SSR 的核心優(yōu)勢(shì)
- 更好的 SEO:搜索引擎爬蟲可以直接獲取完全渲染的頁(yè)面
- 更快的內(nèi)容到達(dá)時(shí)間:用戶無需等待所有JavaScript下載執(zhí)行完就能看到內(nèi)容
- 更一致的用戶體驗(yàn):特別在慢速網(wǎng)絡(luò)或低性能設(shè)備上表現(xiàn)更好
Vue SSR 的基本工作原理
服務(wù)器端:
- 創(chuàng)建Vue實(shí)例
- 渲染為HTML字符串
- 將狀態(tài)(store/route等)嵌入到HTML中
客戶端:
- 接收服務(wù)器渲染的HTML
- "激活"(hydrate)靜態(tài)HTML使其變?yōu)閯?dòng)態(tài)Vue應(yīng)用
- 接管后續(xù)的交互和路由
實(shí)現(xiàn)Vue SSR的方式
- 手動(dòng)配置:使用
vue-server-renderer
包自行搭建SSR環(huán)境 - Nuxt.js:基于Vue的SSR框架,提供開箱即用的SSR解決方案
npx create-nuxt-app my-ssr-app
- Vite SSR:使用Vite構(gòu)建工具配置SSR
基本示例代碼
// 服務(wù)器入口文件 import { createSSRApp } from 'vue' import { renderToString } from 'vue/server-renderer' const app = createSSRApp({ data: () => ({ count: 1 }), template: `<button @click="count++">{{ count }}</button>` }) renderToString(app).then((html) => { // 輸出渲染結(jié)果 console.log(html) // <button>1</button> })
適用場(chǎng)景
- SEO要求高的內(nèi)容型網(wǎng)站(新聞、博客、電商等)
- 社交媒體分享需要正確預(yù)覽的頁(yè)面
- 首屏加載速度要求極高的應(yīng)用
注意事項(xiàng)
- 生命周期鉤子:只有
beforeCreate
和created
會(huì)在服務(wù)端執(zhí)行 - 特定代碼:避免在服務(wù)端使用瀏覽器特有API(如window、document)
- 數(shù)據(jù)預(yù)?。盒枰阡秩厩矮@取所有必要數(shù)據(jù)
- 復(fù)雜度:比純客戶端應(yīng)用更復(fù)雜,需要考慮服務(wù)端和客戶端兩種環(huán)境
SSR雖然能解決某些特定問題,但也會(huì)增加開發(fā)復(fù)雜度和服務(wù)器成本,應(yīng)根據(jù)項(xiàng)目實(shí)際需求權(quán)衡是否采用。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue2.0實(shí)現(xiàn)的tab標(biāo)簽切換效果(內(nèi)容可自定義)示例
這篇文章主要介紹了vue2.0實(shí)現(xiàn)的tab標(biāo)簽切換效果,結(jié)合實(shí)例形式分析了vue.js實(shí)現(xiàn)內(nèi)容可自定義的tab點(diǎn)擊切換功能相關(guān)操作技巧,需要的朋友可以參考下2019-02-02Vue.js?前端項(xiàng)目在常見?Web?服務(wù)器上的部署配置過程
Web服務(wù)器支持多種編程語(yǔ)言,如 PHP,JavaScript,Ruby,Python 等,并且支持動(dòng)態(tài)生成 Web 頁(yè)面,這篇文章主要介紹了Vue.js?前端項(xiàng)目在常見?Web?服務(wù)器上的部署配置,需要的朋友可以參考下2023-02-02集成vue到j(luò)query/bootstrap項(xiàng)目的方法
下面小編就為大家分享一篇集成vue到j(luò)query/bootstrap項(xiàng)目的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02Vue中在新窗口打開頁(yè)面及Vue-router的使用
這篇文章主要介紹了Vue中在新窗口打開頁(yè)面 及 Vue-router的使用,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06Vue2.0結(jié)合webuploader實(shí)現(xiàn)文件分片上傳功能
這篇文章主要介紹了Vue2.0結(jié)合webuploader實(shí)現(xiàn)文件分片上傳功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-03-03vue實(shí)現(xiàn)移動(dòng)端懸浮窗效果
這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)移動(dòng)端懸浮窗效果,vuejs實(shí)現(xiàn)div拖拽移動(dòng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12